In Python einfrieren?

8

Ich habe in Python für eine Weile programmiert, und gerade angefangen, Ruby bei der Arbeit zu verwenden. Die Sprachen sind sehr ähnlich. Ich bin jedoch auf eine Ruby-Funktion gestoßen, die ich in Python nicht replizieren kann. Es ist Rubys Methode freeze .

%Vor%

Gibt es eine Möglichkeit, dies in Python zu imitieren?

EDIT: Ich habe gemerkt, dass ich es so gemacht habe, als ob das nur für Listen wäre; In Ruby ist freeze eine Methode für Object , sodass Sie jedes Objekt unveränderlich machen können. Ich entschuldige mich für die Verwirrung.

    
kerkeslager 15.10.2010, 13:49
quelle

2 Antworten

9

Sie könnten immer list ableiten und das "eingefroren" -Flag hinzufügen, das __setitem__ blockiert:

%Vor%

Dann spielen Sie damit:

%Vor%     
Nick T 15.10.2010, 14:45
quelle
11
%Vor%

Siehe auch, vgl. set vs. frozenset , bytearray vs. bytes .

Zahlen, Strings sind selbst unveränderlich:

%Vor%     
SilentGhost 15.10.2010 13:50
quelle

Tags und Links