Tôi đã xem câu hỏi về Stack Overflow Counting instances of a class? và tôi không chắc tại sao giải pháp đó hoạt động và một giải pháp sử dụng tính năng bổ sung đơn giản thì không. Tôi đoán đây là một câu hỏi về cách biến lớp và các biến mẫu được lưu trữ và truy cập.Thay đổi thuộc tính lớp trong __init__
Dưới đây là đoạn code tôi nghĩ nên làm việc, nhưng thay vì tạo ra 4
cho mỗi id
:
class foo():
num = 3 # trying 3 instead of 0 or 1 to make sure the add is working
def __init__(self):
self.num += 1
self.id = self.num
f = foo()
g = foo()
print f.id # 4
print g.id # 4
Tuyên bố self.num +=1
có phần làm việc (việc bổ sung đang xảy ra, nhưng không phải là nhiệm vụ).
Điều gì đang xảy ra dưới mui xe khiến nhiệm vụ này không thành công ở đây, trong khi nhiệm vụ itertools.count
thành công trong giải pháp của câu hỏi khác?
Ngoài ra, 'tự .__ lớp __ num + = 1' – robert
@robert rằng sẽ làm việc, nhưng tôi thấy nó hơi lúng túng – jonrsharpe