2024-04-18 14:09:23 发布
网友
我试图在另一个函数中定义的函数中使用变量/列表,而不使其全局化。在
这是我的代码:
def hi(): hello = [1,2,3] print("hello") def bye(hello): print(hello) hi() bye(hello)
目前我得到的错误是“再见(hello)”中的“hello”没有定义。在
我如何解决这个问题?在
如果不想使用全局变量,最好的选择是从hi()内调用bye(hello)。在
hi()
bye(hello)
def hi(): hello = [1,2,3] print("hello") bye(hello) def bye(hello): print(hello) hi()
不能在没有global的函数内声明全局变量。可以这样做
global
def hi(): hello = [1,2,3] print("hello") return hello def bye(hello): print(hello) hi() bye(hi())
您需要从您的hi方法返回hello。在
hi
通过简单的打印,您无法访问hi方法中发生的事情。在方法内创建的变量仍在该方法的作用域内。在
关于Python中变量范围的信息:
http://gettingstartedwithpython.blogspot.ca/2012/05/variable-scope.html
在您的hi方法中返回hello,然后,当您调用hi时,您应该将结果存储在一个变量中。在
hello
因此,在hi中,您返回:
def hi(): hello = [1,2,3] return hello
然后,当您调用方法时,您将hi的结果存储在一个变量中:
然后,将该变量传递给bye方法:
bye
bye(hi_result)
如果不想使用全局变量,最好的选择是从
hi()
内调用bye(hello)
。在不能在没有
global
的函数内声明全局变量。可以这样做您需要从您的
hi
方法返回hello。在通过简单的打印,您无法访问
hi
方法中发生的事情。在方法内创建的变量仍在该方法的作用域内。在关于Python中变量范围的信息:
http://gettingstartedwithpython.blogspot.ca/2012/05/variable-scope.html
在您的
hi
方法中返回hello
,然后,当您调用hi
时,您应该将结果存储在一个变量中。在因此,在
hi
中,您返回:然后,当您调用方法时,您将
^{pr2}$hi
的结果存储在一个变量中:然后,将该变量传递给
bye
方法:相关问题 更多 >
编程相关推荐