Python类变量不保留值
我用一个类变量声明了一个类。 模块名称my_moudle_1.py 例如:Python类变量不保留值,python,python-3.x,Python,Python 3.x,我用一个类变量声明了一个类。 模块名称my_moudle_1.py 例如: class my_class: my_dict={}#The class variable def __init__(self): return 在另一个模块——我的moudle_2.py中,我写道: 从my_moudle_1导入my_类 在这个模块中有一个类。在我编写的类方法中: 我的班级。我的字典['123']=5 在第三个模块——my_moudle_3.py中,我再次写道: 从my_moudle_
class my_class:
my_dict={}#The class variable
def __init__(self):
return
在另一个模块——我的moudle_2.py中,我写道:
从my_moudle_1导入my_类
在这个模块中有一个类。在我编写的类方法中:
我的班级。我的字典['123']=5
在第三个模块——my_moudle_3.py中,我再次写道:
从my_moudle_1导入my_类
当我在我的\u类的实例中检查我的\u dict变量值时,我得到
该值为{}。
如何在不同的模块中更新类变量并使用它
在不同文件中的实例中
谢谢,不应该是这样的。我无法重现这个问题: mymod.py mymod2.py 测试pp.py
这可能是缩进吗?如果你发布一个新的示例,人们会更容易帮助你。更新另一个模块和类中的类变量并尝试读取另一个类和模块中的类变量返回{}@Orenl更新了示例。仍然无法复制。如果你不能复制,那么就不要回答,投票以“无法复制”结束@Jean Françoisfare答案是“不应该是这样”。非复制步骤说明了事情是如何工作的。
class my_class:
my_dict = {}
def __init__(self):
return
my_class.my_dict['foo'] = 'bar'
from mymod import my_class
my_class.my_dict['greeting'] = 'Hello'
from mymod import my_class
import mymod2 # will modify my_dict as a side effect
my_class.my_dict['barq'] = 'foo'
print(my_class.my_dict)
$ python3 testapp.py
{'foo': 'bar', 'greeting': 'Hello', 'barq': 'foo'}
$