Skip to main content
 首页 » 编程设计

python 在将参数传递给 init 时引用类变量

2025年05月04日20lidabo

我想达到的目标:
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