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



>我有这个简单的代码,我希望'a'的值在最后是4。"全局A"可以解决它,但是还有其他方法吗?由于无处不在,过度使用全局变量是设计不佳的症状。

a=3
def function():
    a = 4
function()
print(a)

如果你想让 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)

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

class aa:
     def __init__(self):
          self.a=3
variables = aa()
print(variables .a)  # Prints '3'
def function():
    z.a = 4
function()
print(variables .a)  # Prints '4'

最新更新