Python - 如何使函数参数全局化?



例如,我想调用函数LSE(n(。 一旦我调用 LSE(5(,我希望 n 被其他函数调用为 5。我尝试在 LSE 中嵌套访问 n 的其他函数,但它也无法访问 n。

在函数之间,这可以通过global关键字来实现。这种方法通常不受欢迎。

n = 0
def LSE(value):
global n
n = value
def second_func():
global n
print(n)

试试这个:

>>> LSE(5)
>>> second_func()
5

如果你想在函数之间共享值,我可以建议将它们封装在一个类中吗?

"有没有办法在不更改名称的情况下做全局的事情?即我想采用我的参数使其成为保留相同名称的全局变量(与此处的值和 n 命名不同相反(">

from: 如何获取传递给函数的变量的原始变量名

"你不能。它在传递给函数之前进行评估。你所能做的就是把它作为一个字符串传递。

可行的是,你可以让你的代码始终使用一个特定的变量名,并在你的函数中,把它声明为一个全局变量。这样,您甚至不需要将其作为参数传递,但每次使用该函数时它都会受到影响;例:

def test_function ():
global N
N = N + 1
print (N)
N = 5
test_function()
test_function()
test_function()

6 7 8

最新更新