Przeczytałem, że w Pythonie można dodać metodę do istniejącego obiektu (tj. Nie w definicji klasy). Rozumiem, że nie zawsze jest to dobre. Ale jak to zrobić?
Próbuję zrozumieć, co to jest łatanie małp czy łata małp? Czy to coś w rodzaju przeciążenia metod / operatorów lub delegowania? Czy ma coś wspólnego z tymi rzeczami?
Powiedzmy, że jestem małpą łatającą metodę w klasie, jak mogę wywołać metodę przesłoniętą z metody przesłonięcia? Tj. Coś trochę jaksuper Na przykład class Foo def bar() "Hello" end end class Foo def bar() super() + " World" end end >> Foo.new.bar == "Hello World"
Celem jest utworzenie próbnej klasy, która zachowuje się jak zestaw wyników db. Na przykład, jeśli zapytanie bazy danych zwraca, używając wyrażenia dict {'ab':100, 'cd':200}, to chciałbym zobaczyć: >>> dummy.ab 100 Na początku myślałem, że może mógłbym to zrobić w ten sposób: ks = ['ab', 'cd'] vs = [12, 34] class …
Mam funkcję z dekoratorem, którą próbuję przetestować za pomocą biblioteki Python Mock . Chciałbym użyćmock.patch do zastąpienia prawdziwego dekoratora fałszywym dekoratorem typu „bypass”, który po prostu wywołuje funkcję. Nie potrafię pojąć, jak nałożyć łatkę, zanim prawdziwy dekorator zawinie funkcję. Wypróbowałem kilka różnych wariacji na temat celu poprawki i zmiany kolejności …
Mam problem z zastąpieniem funkcji z innego modułu inną funkcją i doprowadza mnie to do szału. Powiedzmy, że mam moduł bar.py, który wygląda następująco: from a_package.baz import do_something_expensive def a_function(): print do_something_expensive() Mam inny moduł, który wygląda tak: from bar import a_function a_function() from a_package.baz import do_something_expensive do_something_expensive = lambda: …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.