在不使用全局函数的情况下在其他函数中调用变量

Hum*_*202 4 python variables global function local

我试图在另一个函数中定义的函数中使用变量/列表,而不使其全局。

这是我的代码:

def hi():
    hello = [1,2,3]
    print("hello")

def bye(hello):
    print(hello)

hi()
bye(hello)
Run Code Online (Sandbox Code Playgroud)

目前,我得到的错误是“ bye(hello)”中的“ hello”未定义。

我该如何解决?

idj*_*jaw 5

您需要从您的hi方法返回问候。

仅通过打印,您将无法访问hi方法内部发生的情况。在方法内部创建的变量仍在该方法的范围内。

有关Python中变量范围的信息:

http://gettingstartedwithpython.blogspot.ca/2012/05/variable-scope.html

您可以hellohi方法内部返回,然后在调用时hi,应将结果存储在变量中。

因此,在中hi,您返回:

def hi():
    hello = [1,2,3]
    return hello
Run Code Online (Sandbox Code Playgroud)

然后,当您调用方法时,将结果存储hi在变量中:

hi_result = hi()
Run Code Online (Sandbox Code Playgroud)

然后,将该变量传递给您的bye方法:

bye(hi_result)
Run Code Online (Sandbox Code Playgroud)