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?