在方法中使用self.classvariable和class.classvariable有什么区别?

时间:2017-12-10 06:45:02

标签: python class oop variables self

class demo():
   c_v=[]
   def __init__(self):
       demo.c_v.append('one')

class demo():
   c_v=[]
   def __init__(self):
       self.c_v.append('one')

两者产生相同的结果? 两者的用途是什么?

1 个答案:

答案 0 :(得分:1)

类变量可供从该类创建实例的所有人使用,就像类中方法的定义一样,而实例变量仅对该实例可用。

举个例子:

class Example:
   class_i = [1] 
   def __init__(self):
        self.instance_i = [1]

a = Example()
b = Example()
a.class_i.append(2)
b.class_i.append(3)
a.instance_i.append(40)
b.instance_i.append(50)

print a.class_i
print b.class_i
print a.instance_i
print b.instance_i

会给你这个输出:

[1,2,3]
[1,2,3]
[1,40]
[1,50]