>  Q&A  >  본문

实例化 - Python怎么避免不同的实例之间共享变量?

PHP中文网PHP中文网2716일 전383

모든 응답(3)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 17:03:24

    你所声明的是类变量而非成员变量,也就是说你的value是绑定到类型的,而不是实例上。

    试试这个

    def A(object):
        def __init__():
            self.value = [ ]
        def append(v):
            self.value.append(v)

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:03:24

    class MyClass():
        def __init__(self):
            self.value=[]
        def append(self,value):
               self.value.append(value)
        def get(self):
               return self.value
    instance_a=MyClass()
    instance_b=MyClass()
    instance_a.append(100)
    print instance_b.get()
    print instance_a.get()

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:03:24

    题主可以看看这个:https://www.zhihu.com/question/25874136
    关于静态变量、实例变量的讲解。
    至于具体如何操作,上面两个答案已经很清楚的列出来了。

    实例变量是要在`__init__(self)`中定义的变量。如果没有定义变量,那就会搜索scope上同名变量。

    회신하다
    0
  • 취소회신하다