繁体   English   中英

Python:更改来自函数参数的全局变量

[英]Python: Change a global variable, which comes from a function parameter

有没有办法让函数的参数,它是一个全局变量,在函数本身中你可以改变这个变量的值。 这样你就有一个全局变量作为函数的参数。 在函数本身中,您可以更改此全局变量的值。 例如:

x = 2
a = 5
def minus_one(x):
    x -= 1 #take the global x
minus_one(x)
print(x) #Should print 1
minus_one(a)
print(a) #Should print 4

是的,你可以做类似的事情。

x = 2

def minus_one(var_name):
    globals()[var_name] -= 1 # This accesses the global dict

minus_one('x') # Note that you must pass the variable name as string here

print(x) # Prints 1

虽然,这根本不推荐。

  • 这可能会导致极难发现的错误。

  • 几乎总是有更好的方法来做到这一点

  • 有点丑

一般来说,知道全局字典存在是好的。 知道你不应该使用它更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM