在 Python 中更改函数内部全局值的最佳方法?
Best way to change value of global value inside a function in Python?
我经常使用 Python 中的大量全局变量,当我的代码运行时,这些值需要不断更改。对我来说,一个非常好的解决方案是将全局变量作为函数内部的参数,但是,据我所知,只能通过在函数中实际命名该特定变量来更改函数内部的全局变量定义。因为我使用很多不同的变量名,这会迫使我为每个变量名创建很多函数。
我想要的是这样的:
x = 5
def foo(_):
global _
_ = 10
return _
foo(x)
print(x)
x 现在是 10 而不是实际输出 5。
达到我想要的效果的最有效方法是什么?
由于您在调用 foo(x)
时麻烦地命名 x
,因此做起来并不费力 x = foo(x)
:
x = 5
def foo(_):
_ = 10
return _
x = foo(x)
print(x)
我可能没有完全理解您需要这样做,但是,您也可以按如下方式管理全局变量:
x = globals()
x['cartoon'] = 'mickey'
print(x['cartoon'])
我经常使用 Python 中的大量全局变量,当我的代码运行时,这些值需要不断更改。对我来说,一个非常好的解决方案是将全局变量作为函数内部的参数,但是,据我所知,只能通过在函数中实际命名该特定变量来更改函数内部的全局变量定义。因为我使用很多不同的变量名,这会迫使我为每个变量名创建很多函数。
我想要的是这样的:
x = 5
def foo(_):
global _
_ = 10
return _
foo(x)
print(x)
x 现在是 10 而不是实际输出 5。 达到我想要的效果的最有效方法是什么?
由于您在调用 foo(x)
时麻烦地命名 x
,因此做起来并不费力 x = foo(x)
:
x = 5
def foo(_):
_ = 10
return _
x = foo(x)
print(x)
我可能没有完全理解您需要这样做,但是,您也可以按如下方式管理全局变量:
x = globals()
x['cartoon'] = 'mickey'
print(x['cartoon'])