小编Lor*_*ler的帖子

Python:派生类在同一内存位置访问基类的字典

我想知道为什么在基类中定义并从派生类访问的字典显然只存在于一个内存位置.一个简短的例子:

class BaseClass:
    _testdict = dict()
    _testint = 0

    def add_dict_entry(self):
        self._testdict["first"] = 1

    def increment(self):
        self._testint += 1

class Class1(BaseClass):
    pass

class Class2(BaseClass):
    pass

object1 = Class1()
object2 = Class2()

object1.add_dict_entry()
object1.increment()
print(object2._testdict)
print(object2._testint)
Run Code Online (Sandbox Code Playgroud)

输出是:

{'first': 1}
0
Run Code Online (Sandbox Code Playgroud)

为什么对object1的"add_dict_entry"的调用会影响object2的字典?使用整数("增量"),基类变量不受影响.

非常感谢.

洛伦茨

python inheritance dictionary

5
推荐指数
1
解决办法
940
查看次数

标签 统计

dictionary ×1

inheritance ×1

python ×1