"Koordinat" adı verilen özelliği tanımlayan bir nokta sınıfı oluşturmaya çalışıyorum. Ancak, beklediğim gibi davranmıyor ve nedenini anlayamıyorum.Python object @property
class Point:
def __init__(self, coord=None):
self.x = coord[0]
self.y = coord[1]
@property
def coordinate(self):
return (self.x, self.y)
@coordinate.setter
def coordinate(self, value):
self.x = value[0]
self.y = value[1]
p = Point((0,0))
p.coordinate = (1,2)
>>> p.x
0
>>> p.y
0
>>> p.coordinate
(1, 2)
ayarlayıcı bu değerleri ayarlamak "gerektiği" olsa bile, o p.x ve p.y nedense ayarlanmış sakın görünüyor. Bunun neden olduğunu bilen var mı? object
alt sınıfların
Python 2.6+ kullanıyor musunuz? –
Nesneyi başlattıktan hemen sonra, değiştirmeye çalışmadan önce 'p.coordinate' yazdırmaya çalışırsanız ne olur? –
Bu, eski stil-sınıflar-yeni-stil-sınıfları bir gotcha var ve 'ya()' veya IDE onu yakalayacağını bekleyebilirsiniz. – smci