Ruby-Äquivalent von Python setattr ()

8

Nun, füge mich zu der Liste der Python-Programmierer hinzu, die sich in Ruby verlieben, aber einen anhaltenden PyAddiction haben. Wie der Post über Pythons getattr suche ich das Ruby-Äquivalent dazu:

%Vor%

Dabei ist obj eine Objektinstanz, Attribut ist der Name eines der Attribute des Objekts als String und Wert ist der Wert dieses Objekts. Der entsprechende Code lautet:

%Vor%

Ich gehe davon aus, dass es möglich ist (weil alles mögliche in Python jetzt noch einfacher in Ruby ist), kann aber keine Dokumentation davon finden.

    
JohnMetta 25.01.2010, 23:04
quelle

1 Antwort

14

Entweder obj.instance_variable_set("@instance_variable", value) oder obj.send("instance_variable=", value) .

Erstere setzt die Instanzvariable direkt. Letzteres ruft die Setter-Methode auf, die natürlich nur funktioniert, wenn es eine Setter-Methode gibt, aber andererseits auch funktioniert, wenn Sie eine Setter-Methode haben, die nicht nur eine Instanz-Variable setzt (oder keine Instanz setzt) Variable überhaupt).

    
sepp2k 25.01.2010, 23:08
quelle

Tags und Links