Sử dụng python, người ta có thể thiết lập một thuộc tính của một cá thể thông qua một trong hai phương thức dưới đây:Làm cách nào để gán một thuộc tính cho một thể hiện bằng Python?
>>> class Foo(object):
pass
>>> a = Foo()
>>> a.x = 1
>>> a.x
1
>>> setattr(a, 'b', 2)
>>> a.b
2
Một cũng có thể gán thuộc tính thông qua trang trí bất động sản.
>>> class Bar(object):
@property
def x(self):
return 0
>>> a = Bar()
>>> a.x
0
Câu hỏi của tôi là, làm cách nào để chỉ định thuộc tính cho một cá thể?
trực giác của tôi là cố gắng một cái gì đó như thế này ...
>>> class Doo(object):
pass
>>> a = Doo()
>>> def k():
return 0
>>> a.m = property(k)
>>> a.m
<property object at 0x0380F540>
... nhưng, tôi nhận được đối tượng sở hữu kỳ lạ này. Thử nghiệm tương tự cũng mang lại kết quả tương tự. Tôi đoán là các thuộc tính có liên quan chặt chẽ hơn đến các lớp so với các trường hợp trong một số khía cạnh, nhưng tôi không biết các hoạt động bên trong cũng đủ để hiểu những gì đang xảy ra ở đây.
Tôi khá chắc chắn rằng họ cần điều này là mỗi ví dụ. Những gì bạn đề xuất sẽ ảnh hưởng đến tất cả các trường hợp. –
Argh! 1 phút trước tôi !! :) +1 – rubik
@Ross - Tôi biết, nó nói rằng trong câu trả lời. Nó chỉ đơn giản là không thể thêm một thuộc tính vào một thể hiện. Xem chuỗi tôi đã liên kết. – agf