Skip to main content
 首页 » 编程设计

Python;类实例

2025年05月04日15over140

假设我有一个类,用 3 个类变量 var1,var2,var3, 和 __init__ 方法调用它,它赋值将参数传递给类变量:

class class1(object): 
    var1 = 0 
    var2 = 0 
    var3 = 0 
 
    def __init__(self,a,b,c): 
       class1.var1 = a 
       class1.var2 = b 
       class1.var3 = c 

现在我要创建同一个类的两个实例:

obj1 = class1(1,2,3) 
obj2 = class1(4,5,6) 

现在,让我们看一下变量值:

print (obj1.var1, obj1.var2,obj1.var3) 
4 5 6 
print (obj2.var1, obj2.var2,obj2.var3) 
4 5 6 

obj1 不应该有值 1,2,3 吗?为什么第二个实例的 __init__ 方法改变了第一个实例(obj1)的值?以及如何使一个类的两个独立的独立实例?

请您参考如下方法:

在类定义中声明但不在方法内的变量将是类变量。换句话说,它们对整个类(class)都是一样的。

要解决这个问题,您可以在 __init__ 方法中声明它们,使它们成为实例变量:

class class1(): 
    def __init__(self,a,b,c): 
        self.var1 = a 
        self.var2 = b 
        self.var3 = c