例如,我想调用一个函数LSE(n)。 一旦我调用LSE(5),我希望n可以被其他函数作为5调用。我试图将访问n的其他函数嵌套在LSE中,但是它也不能访问n。
答案 0 :(得分:1)
这两个功能之间可以使用global
关键字来实现。通常不赞成这种方法。
n = 0
def LSE(value):
global n
n = value
def second_func():
global n
print(n)
尝试一下:
>>> LSE(5)
>>> second_func()
5
如果要在函数之间共享值,我是否建议将它们封装在类中?
答案 1 :(得分:0)
“无论如何都可以在不更改名称的情况下执行全局操作?即我想将参数设为保留相同名称的全局变量(与此处的value和n命名不同)不同”
来自:How to get the original variable name of variable passed to a function
“您不能。在传递给函数之前先对其求值。您所能做的就是将其作为字符串传递。”
可行的是,您可以让您的代码始终使用特定的变量名,并在函数内将其声明为全局变量。这样,您甚至不需要将其作为参数传递,但是每次使用该函数时,它将受到影响。例如:
def test_function ():
global N
N = N + 1
print (N)
N = 5
test_function()
test_function()
test_function()
6 7 8