我已经学习 Python 三个月了,现在我有一个使用 google 无法解决的问题,但幸运的是我能够在这里简化它:
我有一个 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'在'class B'中缺少'zz',它会给出错误“未定义全局名称zz”。
但是,当我现在这样写时,看起来值“10”被粘在类上,我无法在主程序中更改它。不知道如何克服这一点。提前感谢您的帮助。
回答:
alKid先写了完整的答案,还要感谢alexvassel和C先生,想知道是否有办法感谢他们,其他人帮助我了解了知识,也非常感谢。