Die Ausgabe scheint ein wenig faul mit dem folgenden Code. Warum wird "in Base" nur einmal gedruckt? Und warum wird "in Base" überhaupt nicht gedruckt? Die tatsächliche Einstellung scheint jedoch gut zu funktionieren. Was vermisse ich?Python-Eigenschaft
class Base:
def __init__(self):
self.s = "BaseStr"
def getstr(self):
print "get in Base"
return self.s
def setstr(self, s):
print "set in Base"
self.s = s
str = property(getstr, setstr)
b = Base()
print b.str
b.str = "Foo"
print b.str
Ausgang:
get in Base
BaseStr
Foo
Spot auf, danke. :) – Mizipzor
Und für Python 3.x müssen Sie dies nicht tun. Alle Klassen in Python3 sind neuer Stil. – treecoder
Aber wenn ich 'object' nicht ableiere, kann ich noch' property' in der classic class erstellen, warum ist das so? – Alcott