我遇到了一个问题,即全局变量在 2 个不同的函数中被修改后没有被“记住”。变量 df
应该是一个数据框,在用户加载正确的文件之前它不会指向任何东西。这类似于我拥有的东西(使用 pandas
和 tkinter
):
global df
class World:
def __init__(self, master):
df = None
....
def load(self):
....
df = pd.read_csv(filepath)
def save(self):
....
df = df.append(...)
save()
总是在 load()
之后调用。问题是,当我调用 save()
时,我收到错误消息“ df
未定义。”我以为 df
得到了初始分配,然后在 init()
load()
了“更新”?我在这里做错了什么?
原文由 Axioms 发布,翻译遵循 CC BY-SA 4.0 许可协议
您必须在需要修改全局变量的函数 内部 使用
global df
。否则(如果写入),您将在函数内创建同名的局部范围变量,并且您的更改不会反映在全局变量中。输出: