我想达到的目标:
1. 有一个类变量来记录创建对象的数量
2. 该变量不应该对对象/其他对象可用,即对类私有(private)
3.如果在初始化时没有提供具体的ID,使用这个计数器变量来赋值object.ID
我有以下 python 代码
class UserClass(object) :
__user_id_counter = 0
def __init__(self, UserID=__user_id_counter) :
self.UserID = UserID
__user_id_counter += 1
myuser = UserClass()
但是我越来越
UnboundLocalError:赋值前引用了局部变量“_UserClass__user_id_counter”
我是 python 的新手,所以请在这里帮助我 :)
最佳答案
要访问 __user_id_counter
,需要一个对象或类引用。在参数列表中 self
或 UserClass
无法访问,因此:
class UserClass(object) :
__user_id_counter = 0
def __init__(self, UserID=None) :
self.UserID = self.__user_id_counter if UserID is None else UserID
UserClass.__user_id_counter += 1
关于python 在将参数传递给 init 时引用类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841261/