Klausimai pažymėti „monkeypatching“

Dinaminis elgesys pasikeičia vykdymo metu pakeičiant programos elementus naujais programos elementais
18
atsakymai

Įtraukus metodą į esamą objekto pavyzdį

Aš perskaičiau, kad galite pridėti metodą prie esamo objekto (pvz., Ne klasės apibrėžime) Pythone. Suprantu, kad tai ne visada gera. Bet kaip tai padaryti?
yra nustatytas 04 rug. '08 5:17
3
atsakymai

Jei beždžionė išsprendžia metodą, ar naująjį įgyvendinimą galite paskambinti viršutiniu metodu?

Pasakykite, kad aš esu beždžionė, kuri ištaiso klasėje esantį metodą, kaip galiu skambinti viršutiniu metodu iš viršijimo metodo? Tai yra kažkas panašaus į super. klasė Foo def bar () "Sveiki" galo klasės klasė Foo def bar () super () + "Worl ...
gruodžio 17 d '10, 14:43
7
atsakymai

Kas yra beždžionių pleistras?

Bandau suprasti, kas yra beždžionių pleistras ar beždžionių pleistras? Ar tai kažkas panašaus į perkrovimą ar metodų / operatorių pavedimą? Ar jis turi ką bendro su šiais dalykais?
nustatytas balandžio 11 d '11 22:05
16
atsakymai

Kaip dinamiškai pridėti turtą į klasę?

Tikslas yra sukurti „mock“ klasę, kuri elgtųsi kaip „DB“ rezultatų rinkinys. Taigi, pavyzdžiui, jei duomenų bazės užklausa grąžinama naudojant diktavimo pareiškimą, {'ab': 100, 'cd': 200}, tada norėčiau pamatyti: >>> dummy.ab 100 Pirmiausia aš ...
nustatyti 25 rug. '09 4:53
5
atsakymai

Kaip viena beždžionių fiksavimo funkcija veikia pythone?

Turiu problemų pakeičiant funkciją iš kito modulio į kitą funkciją, ir jis mane išprotėja. Tarkime, kad turiu bar.py modulį, kuris atrodo taip: iš a_package.baz importavimo do_something_expensive def a_function (): print do_somethi ...
nustatytas kovo 4 d. 10 val
9
atsakymai

Ką reiškia „Monkey Patching“ tiksliai Ruby?

Pasak „Wikipedia“, beždžionių pleistras: būdas išplėsti arba pakeisti dinaminių kalbų [...] vykdymo aplinkos kodą nekeičiant šaltinio kodo šaltinio. Toliau pateiktas teiginys iš to paties įrašo supainiojo mane: Ruby, terminas „beždžionių pleistras“ buvo neteisingas ...
gruodžio 26 d '08 10:12 val
3
atsakymai

Ar galiu pridėti savo metodus / atributus į integruotus Python tipus?

Pvz., Noriu pridėti „helloWorld“ () metodą prie „Python“ tipo. Ar galiu tai padaryti „JavaScript“ turi prototipo objektą, kuris elgiasi tokiu būdu. Galbūt tai yra blogas dizainas, ir turiu subklasuoti diktavimo objektą, bet tada jis veikia ...
15 Jan '11 10:27
3
atsakymai

Kaip „Rails“ pridėti naują metodą į eilutės klasę?

Noriu sukurti indeksą įvairiems objektams „Rails“ projekte ir norėčiau pridėti „count_occurences“ metodą, kurį galiu skambinti „String“ objektais. Mačiau, kad galėčiau padaryti kažką panašaus į klasę String def self.count_occurences do_something_here ...
nustatytas rugsėjo 20 d '11 22:28
14
atsakymai

Ar galite naudoti beždžionių pleistrų metodus pagrindiniams tipams pythone?

Ruby gali pridėti metodus į skaičių klasę ir kitus pagrindinius tipus, kad gautų tokius efektus kaip: 1.should_equal (1) Tačiau atrodo, kad pythonas negali to padaryti. Ar tai tiesa? Ir jei taip, tai kodėl? Ar tai susiję su tuo, kad tipas nėra ...
nustatyti 10 okt. '08, 9:56 val
5
atsakymai

Beždžionė nustato klasę kitame „Python“ modulyje.

Dirbu su kito asmens parašytu moduliu. Noriu, kad beždžionė nustatytų modulyje nustatytą __init__ klasės metodą. Pateikiami pavyzdžiai, rodantys, kaip tai padaryti, pasiūlė, kad aš pats paskambinčiau į klasę (pvz., Pyt klasė ...
nustatyti spalio 23 d '13, 18:28
6
atsakymai

Ar galiu pataisyti „Python“ dekoratorių, prieš tai suvyniojant funkciją?

Turiu funkciją su dekoratoriumi, kurį bandau išbandyti naudojant „Python Mock“ biblioteką. Norėčiau naudoti mock.patch, norint pakeisti tikrą dekoratorių su maketavimo dekoratoriumi, kuris tiesiog vadina šią funkciją. Aš negaliu suprasti, kaip ...
nustatyti Oct 05 '11 23:50
4
atsakymai

Beždžionių pleistras Python klasė

Turiu klasę, esančią atskirame modulyje, kurio negaliu keisti. iš modulio importuoti „MyClass“ klasė „ReplaceClass“ (objektas) ... „MyClass“ = „ReplaceClass“ Jis nekeičia „MyClass“ bet kurioje vietoje, išskyrus šį failą. Tačiau jei pridedu metodą, p ...
rugsėjo 22 d. '10, 2:28
1
atsakymas

Dinamiškai pridėti objektą ar metodą į objektą

Ar galiu dinamiškai į objektą įtraukti objektą ar metodą Groovy? Štai ką aš iki šiol bandžiau: klasė Sveikiname {def name Greet (kas) {name = kas [0] .toUpperCase () + [1 ..- 1]} sal salute () {println "Sveiki $ vardas! " }} g = naujas sveikinimas („pasaulis ...
nustatyti 24 sausis '11 15:25
3
atsakymai

Ar galite nustatyti * tiesiog * įdėtą funkciją, uždarydami ar pakartodami visą išorinę funkciją?

Naudojamoje trečiosios šalies bibliotekoje yra gana ilga funkcija, kurioje naudojama vidinė funkcija. Šios bibliotekos naudojimas sukelia šios funkcijos klaidą ir labai norėtume išspręsti šią klaidą. Deja, palaikykite ...
gruodžio 18 d '14, 18:35
3
atsakymai

Kaip propaguoti funkcijas pythone?

def sub3 (n): grįžti n - 3 def kvadratas (n): grįžti n * n miręs lengvai surenka funkcijas pythone: >>> my_list [0, 1, 2, 3, 4, 5, 6, 7, 8 , 9] >>> [kvadratas (sub3 (n)) n mano_list] [9, 4, 1, 0, 1, 4, 9, 16, 25, 36] K su ...
gegužės 12 d. 15 val. 18:16