Na przykład — powiedz, że chcę dodać metodę helloWorld()
do typu Dict Pythona. Mogę to zrobić?Czy mogę dodać niestandardowe metody/atrybuty do wbudowanych typów Pythona?
JavaScript ma prototypowy obiekt, który zachowuje się w ten sposób. Może to zły projekt i powinienem podklasować obiekt dict, ale wtedy działa on tylko na podklasach i chcę, żeby działał na wszystkich przyszłych słownikach.
Oto jak byłoby to w JavaScript:
String.prototype.hello = function() {
alert("Hello, " + this + "!");
}
"Jed".hello() //alerts "Hello, Jed!"
Oto przydatny związek z większą liczbą przykładów — http://www.javascriptkit.com/javatutors/proto3.shtml
Możesz to zrobić również w ruby, po prostu otwierając klasę ponownie, np .: class String; def new_method() ...; end; Jestem prawie pewien, że Python ma coś takiego. –
@Abdullah Wierzę, że odnosisz się do łatania małp, które są głównie mile widziane. –
Tak, dokładnie. Wszystko odbywa się w Railsach. –