Aşağıdaki kod göz önüne alındığında çıktı biraz balık gibi görünüyor. Neden "üste gir" sadece bir kez basılır? Ve neden "Basılı olarak ayarlanmış" hiç yazdırılmıyor? Gerçek alma/ayarlama olsa iyi çalışıyor gibi görünüyor. Neyi kaçırıyorum?Python özelliği
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
Çıktı:
özellikleri düzgün çalışması için Sen new-style classes kullanmak gerekirget in Base
BaseStr
Foo
Üzerinde durun, teşekkürler. :) – Mizipzor
Ve Python 3.x için bunu yapmanız gerekmez. Python3'teki tüm sınıflar yeni bir stil. – treecoder
Ama eğer 'nesne' alt sınıfını yapmazsam, yine de klasik sınıfta 'özellik' oluşturabilirim, neden bu? – Alcott