如何从 def 永久更改全局变量



我在更新和调用全局变量的值时遇到问题。

我尝试在互联网上查找类似的帖子和文章。还本地化了一个似乎运行良好的小测试......但是在我的整体代码的这一部分中,它不起作用。

WEEK_ONE_REFINED = ""
def change_it():
global WEEK_ONE_REFINED
WEEK_ONE_REFINED = week_one_refined.strftime("%d/%m/%Y")
def print_it():
print (WEEK_ONE_REFINED)

我有一个名为 WEEK_ONE_REFINED 的全局变量。 我按下一个按钮并打电话给change_it。 然后我按下另一个按钮并调用print_it但它打印的只是原始的"值。不是更新的值。

为什么它需要全局?这样会更好:

def change_it(week_str):
return week_str.strftime("%d/%m/%Y")
def print_it(week):
print (week)
week = change_it("1/2/2019")
print_it(week)

你的代码是正确的。如果要打印原始空值,则会发生以下两种情况之一

  • change_itprint_it()之前没有调用(可能按钮没有调用它)
  • strftime表达式提供空字符串(不太可能)

乍一看,您的代码似乎是正确的。我想说你的问题是week_one_refined.strftime("%d/%m/%Y")抛出了一个异常,并且变量永远不会更新。

对不起,伙计们,感谢您的所有帮助。

该功能链接到复选框,只有在单击复选框时才能工作。一旦我开始单击复选框,变量就会更新。

我现在已经修复了它,以便无论复选框是否已激活,全局变量都会更新。

感谢您的帮助。

相关内容

  • 没有找到相关文章

最新更新