我一直在学习Python三个月,现在我有一个问题,我无法通过使用谷歌解决,但幸运的是我能够简化它在这里:Python:更新实例的值,并在导入模块的类中使用它
我有一个var_class模块:
#var_class.py
class A(object):
def __init__(self, x):
self.x = x+2
zz = A(10)
class B():
b = 0
def __init__(self):
pass
def update(self):
B.b = zz.x
,并在主程序中,我有:
#main.py
from var_class import *
b_class = B()
b_class.b # I get 0 as expected
zz = A(100)
b_class.update()
b_class.b # Instead of 102, I get 12 unexpectedly
你看,我的目标是改变“ZZ”经常为每个数据的输入,然后ü更新一个类变量'b',并且我在var_class.py中写入zz = A(10)的原因是否则当我导入它时,模块'var_class'在'B类'中缺少'zz',它会给出错误“全球名称zz未定义”。
但是,现在我写这样,看起来像值'10'卡住了课程,我不能在主程序中更改它。不知道如何克服这一点。 在此先感谢您的帮助。
答:
醇酸第一次写的全部答案,要感谢alexvassel和C先生也想知道是否有办法来感谢他们,别人帮了我的知识,也欣赏许多。
'进口*'是一个不好的做法 – alexvassel
同意,我听说是不推荐,想知道是否改变什么建议吗? @alexvassel – TongZZZ
'from var_class import A,B' – alexvassel