在不同的函数中调用变量而不使用glob

2024-04-18 14:09:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

这是我的代码:

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

def bye(hello):
    print(hello)

hi()
bye(hello)

目前我得到的错误是“再见(hello)”中的“hello”没有定义。在

我如何解决这个问题?在


Tags: 函数代码hello列表定义def错误hi
3条回答

如果不想使用全局变量,最好的选择是从hi()内调用bye(hello)。在

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

def bye(hello):
    print(hello)

hi()

不能在没有global的函数内声明全局变量。可以这样做

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

def bye(hello):
    print(hello)

hi()
bye(hi())

您需要从您的hi方法返回hello。在

通过简单的打印,您无法访问hi方法中发生的事情。在方法内创建的变量仍在该方法的作用域内。在

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

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

在您的hi方法中返回hello,然后,当您调用hi时,您应该将结果存储在一个变量中。在

因此,在hi中,您返回:

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

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

^{pr2}$

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

bye(hi_result)

相关问题 更多 >