【发布时间】:2018-04-15 00:33:10
【问题描述】:
我有这个简单的代码,我希望 'a' 的值最后为 4。 'global a' 可以解决,但有没有其他办法呢?由于到处都是过度使用全局变量是设计不佳的症状。
a=3
def function():
a = 4
function()
print(a)
【问题讨论】:
-
一写
a=3,就已经使用了全局变量。 -
题目问“如何避免全局变量”,题目问“如何在没有
global关键字的函数内部修改全局变量”。您应该解释您要解决的问题是什么。 -
很难说写出这样的“正确”方式,因为如果我们尝试修复没有意义的东西,它很快就会简化为
print(4)。 -
为什么要避免使用
global关键字?您要解决的根本问题是什么? -
知道你的目标很重要。
tkinter具有称为“变量”的特殊类(请参阅The Variable Classes (BooleanVar,DoubleVar,IntVarStringVar)),它使您想做的事情变得容易并避免使用全局变量。另请参阅Control variables: the values behind the widgets 了解更多详情。