【问题标题】:Python Class variable not keeping valuePython类变量不保持价值
【发布时间】:2018-09-13 09:42:28
【问题描述】:

我用类变量声明了一个类。 模块名称 my_moudle_1.py 例如:

class my_class:
    my_dict={}#The class variable

def __init__(self):
   return

在不同的模块 - my_moudle_2.py 我写道:

从 my_moudle_1 导入 my_class

在这个模块里面有一个类。在我写的类方法中:

my_class.my_dict['123']=5

在第三个模块 - my_moudle_3.py 我又写了一遍:

从 my_moudle_1 导入 my_class

当我检查 my_class 实例中的 my_dict 变量值时,我得到 该值为 {}。 我如何在不同的模块中更新类变量并使用它 在不同文件的实例中?

谢谢

【问题讨论】:

标签: python python-3.x


【解决方案1】:

不应该是这样的。我无法重现此问题:

mymod.py

class my_class:
    my_dict = {}

    def __init__(self):
       return

my_class.my_dict['foo'] = 'bar'

mymod2.py

from mymod import my_class

my_class.my_dict['greeting'] = 'Hello'

testapp.py

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'}
$

【讨论】:

  • 更新另一个模块和类中的类变量并尝试读取另一个类和模块中的类变量返回{}
  • @Orenl 更新了示例。仍然无法重现。
  • 如果不能复现,那就不要回答,直接投票关闭为“不能复现”
  • @Jean-FrançoisFabre 答案是“不应该这样”。非复制步骤说明了事情是如何运作的。
猜你喜欢
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
相关资源
最近更新 更多