In Python 3 soll alles ein Objekt sein, gerade Zahlen, aber sie sind unveränderlich.Ist es möglich, Wrapper-Objekt für Zahlen, z. schweben, um es veränderbar zu machen?
Ist es möglich Wrapper-Objekt für Zahlen, z. float, so dass es sich genau wie gewöhnliche Zahlen verhalten würde, außer dass es veränderbar sein muss?
Ich habe mich gefragt, ob es möglich wäre, mit Hilfe der integrierten in Typ Funktion, indem anonymes Wrapper-Objekt aus Float abzuleiten, sondern ändert es Verhalten wandelbar zu sein.
>>> f = lambda x : type('', (float,), dict())(x)
>>> a = f(9)
>>> a
9.0
Welche Parameter muss ich f ändern machen Nummer einem wandelbar sein?
Wie ich überprüfen, ob eine Zahl wandelbar ist:
ich in der Lage sein muss, eine solche Funktion f zu erstellen, die von Integer-Wert einen Float-Wert und nach der flache Kopie erstellen würde wäre es in der folgenden Weise verhalten:
>>> list_1 = [f(i) for i in [1, 2, 3, 4]]
>>> list_1
[1.0, 2.0, 3.0, 4.0]
>>> list_2 = copy.copy(list_1)
>>> list_1[0] *= 100
>>> list_1
[100.0, 2.0, 3.0, 4.0]
>>> list_2
[100.0, 2.0, 3.0, 4.0]
Änderung der ersten Liste, haben beide geändert.
Vielleicht muss ich einige Felder zu dict() hinzufügen oder zusätzliche Basisklasse hinzufügen, die Mutabilität erzwingen würde?