Tôi đang cố tạo lớp điểm xác định thuộc tính được gọi là "tọa độ". Tuy nhiên, nó không hoạt động như tôi mong đợi và tôi không thể hiểu tại sao.Đối tượng Python @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)
Có vẻ như p.x và p.y không được đặt vì lý do nào đó, mặc dù setter "nên" đặt các giá trị đó. Có ai biết tại sao không?
Bạn đang sử dụng Python 2.6+? –
Điều gì sẽ xảy ra nếu bạn cố gắng in 'p.coordinate' ngay sau khi bạn đã khởi tạo đối tượng, trước khi cố thay đổi nó? –
Đây là một lớp học kiểu cũ với các lớp học kiểu cũ và bạn có thể mong đợi hoặc là 'property()' hoặc IDE sẽ bắt nó. – smci