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

时间:2018-02-17 02:39:25

标签: python python-3.x

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

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

1 个答案:

答案 0 :(得分:2)

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

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

虽然不建议这样做。

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

  • 几乎总有一种更好的方法

  • 这有点难看

一般来说,了解全球法典存在是好事。知道你不应该使用它更好。