>我有这个简单的代码,我希望'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'