monkeypatching
Dodawanie metody do istniejącej instancji obiektu
Czytałem, że można dodać metodę do istniejącego obiektu (tzn. nie w definicji klasy) w Pythonie.
Rozumiem, że nie zawsze dobrze jest to robić. Ale jak można to zrobić?
Czy podczas łatania metody można wywołać metodę overridden z nowej implementacji?
Powiedzmy, że jestem małpą łatającą metodę w klasie, jak Mogę wywołać metodę overridden z metody overriding? Czyli coś jak su ... bar()
"Hello"
end
end
class Foo
def bar()
super() + " World"
end
end
>> Foo.new.bar == "Hello World"
Czym jest łatanie małp?
Próbuję zrozumieć, czym jest monkey patching czy monkey patch?
Czy to coś w rodzaju przeciążania lub delegowania metod/operatorów?
Czy ma to coś wspólnego z tymi rzeczami?
Jak dynamicznie dodać właściwość do klasy?
Celem jest stworzenie klasy mock, która zachowuje się jak dB resultset.
Więc na przykład, jeśli zapytanie bazy danych zwraca ... nstancji w czasie wykonywania?
P. S. jestem świadomy z alternatywy przedstawionej w Jak stosuje się metodę __getattribute__?
Czy można w Pythonie łatać metody na typach rdzeni?
Ruby może dodawać metody do klasy Number i innych typów rdzenia, aby uzyskać efekty takie jak:
1.should_equal(1)
Ale wygl ... ypuszczano:
should_equal(item.price, 19.99)
Ta koncepcja jest tym, co Rspec i niektóre inne frameworki Ruby są oparte on
Jak wyśledzić żądanie HTTP w scenariuszu testów jednostkowych w Pythonie
Chciałbym dołączyć serwer WWW dla wszystkich moich testów związanych z HTTP. Nie musi być bardzo wyrafinowany. Wolałbym nie b ... typów kombinacji arkuszy stylów i przetestować protokół, a następnie niektóre opcje dotyczące ich parsowania, kombinacji itp.
Używanie selera w procesach i gevent w zadaniach jednocześnie
Chciałbym użyć selera jako kolejki do moich zadań, aby moja aplikacja internetowa mogła Zadać pytanie, zwrócić odpowiedź i za ... możliwe jest użycie selera do zadań zapytań i gevent do robienia pewnych rzeczy wewnątrz jednego zadania? Jak? Co robię źle?
Monkey patching a class in another module in Python
Pracuję z modułem napisanym przez kogoś innego. Chciałbym wprowadzić metodę __init__ klasy zdefiniowanej w module. Przykłady, ... J muszę zastąpić kopię w thirdpartymodule_b, a nie thirdpartymodule_a. np. thirdpartymodule_b.SomeClass.__init__ = new_init.
Monkey-patch Python class
Mam klasę, zlokalizowaną w osobnym module, której nie mogę zmienić.
from module import MyClass
class ReplaceClass(object)
... print 123
MyClass.foo = bar
To zadziała, a metoda foo będzie dostępna wszędzie indziej.
Jak całkowicie zastąpić klasę?
Jak jedna małpa łatać funkcję w Pythonie?
Mam problem z zastąpieniem funkcji z innego modułu inną funkcją i doprowadza mnie to do szału.
Powiedzmy, że mam moduł bar.p ... eally cheap.
Ale zamiast tego rozumiem to:
Something expensive!
Something expensive!
Something expensive!
Co robię źle?
Co dokładnie oznacza "Monkey Patching" w Ruby?
Według Wikipedii, A małpa patch to:
Sposób na rozszerzenie lub modyfikację runtime
kod języków dynamicznych [...]
b ... dne znaczenie łatania małp w Ruby. czy robi coś takiego, czy jest to coś innego?
class String
def foo
"foo"
end
end
W Rails, jak dodać nową metodę do klasy String?
Chcę zbudować indeks dla różnych obiektów w moim projekcie Rails i chciałbym dodać metodę 'count_occurrences', którą mogę wyw ... s
do_something_here
end
end
Jak dokładnie zdefiniować tę metodę i gdzie umieścić kod w moim projekcie Rails?
Thanks
Czy Mogę łatać dekorator Pythona przed zawinięciem funkcji?
Mam funkcję z dekoratorem, którą próbuję przetestować przy pomocy biblioteki Pythona Mock . Chciałbym użyć mocka.patch do zas ... różnych wariantów docelowego patcha i zmieniłem kolejność poprawek i instrukcji importu, ale bez powodzenia. Jakieś pomysły?
Patch routine call w delphi
Chcę łatać rutynowe wywołanie, aby móc sobie z tym poradzić z pewnymi modyfikacjami.
Piszę resource loader. Chcę łatać LoadRe ... ; LoadResourceModule - > jump to - > MyCustomResourceModule...
Wszelkie wskazówki na ten temat byłyby bardzo pomocne.
Konwertuj pliki cookie Google Analytics na pamięć lokalną/sesyjną
UPDATE
http://jsfiddle.net/musicisair/rsKtp/embedded/result/
Google Analytics ustawia 4 pliki cookie, które będą wysyłan ... szukam sposobu na wyciśnięcie pozostałych ciasteczek bajty z Google Analytics w przeglądarkach obsługujących pamięć lokalną.
Jak mogę łatać metodę instancji w Perlu?
Staram się malp-patch (Duck-punch : -) a LWP::UserAgent instancja, jak tak:
sub _user_agent_get_basic_credentials_patch {
... ssed.
I wiem, że mogę podklasować UserAgent, ale wolałbym bardziej zwięzłe podejście do małp. Zgoda dorosłych i co masz. ;-)
Monkey patching Devise (or any Rails gem)
Używam gem uwierzytelnianiaDevise w moim projekcie Rails i chcę zmienić klucze, których używa w alertach flash. (Devise używ ... y każdej akcji Devise:
Routing Error: undefined method 'prepend_before_filter' for
Devise:: SessionsController:Class
Dodaj funkcjonalność do Django FlatPages bez zmiany oryginalnej aplikacji Django
Chciałbym dodać pole do modelu bazy danych Django FlatPage, ale tak naprawdę Nie wiem, jak to rozszerzyć bez edycji oryginaln ... ge(FlatPageOld):
order = models.PositiveIntegerField(unique=True)
Jak mogę dodać to do modelu FlatPage?
Z góry dzięki
Czy Mogę dodać własne metody/atrybuty do wbudowanych typów Pythona?
Na przykład-powiedzmy, że chcę dodać metodę helloWorld() do typu Dict Pythona. Mogę to zrobić?
JavaScript posiada prototypow ... erts "Hello, Jed!"
Oto przydatny link z większą ilością przykładów- http://www.javascriptkit.com/javatutors/proto3.shtml
Czy "łatanie małp" naprawdę jest takie złe?
Niektóre języki, takie jak Ruby i JavaScript mają otwarte klasy, które pozwalają modyfikować interfejsy nawet podstawowych kl ... ietu oprogramowania, który udostępniasz do dystrybucji), czy istnieje dobry powód, aby nie korzystać z tej funkcji językowej?
- 1
- 2