在这种情况下如何避免全局变量?

时间:2018-04-15 00:33:10

标签: python globals

我有这个简单的代码,我希望'a'的值最后为4。 'global a'可以解决它,但还有其他方法吗?因为在任何地方过度使用全局变量都是设计不良的症状。

a=3
def function():
    a = 4

function()
print(a)

2 个答案:

答案 0 :(得分:-1)

如果您希望a为4,则必须从函数返回它,然后将其重新分配给a。

a=3
def function(b):
    b = 4
    return b

a = function(a)
print(a)

函数内部的任何名称都是该函数的本地名称,因此您可以在函数内部执行独立于其余代码的计算。

完成此操作后,您可以重新分配给变量以进行进一步处理。

所以也许不要把它变成4,你可以这样做:

a=3
def function(b):
    b = b ** 4 // 5
    return b

a = function(a)
print(a)

答案 1 :(得分:-1)

找出一个解决方案,将变量存储在一个类中:

os.system