【发布时间】:2015-10-28 11:35:59
【问题描述】:
我正在尝试在另一个函数中定义的函数中使用变量/列表,而不使其成为全局变量。
这是我的代码:
def hi():
hello = [1,2,3]
print("hello")
def bye(hello):
print(hello)
hi()
bye(hello)
目前我收到“bye(hello)”中的“hello”未定义的错误。
我该如何解决这个问题?
【问题讨论】:
-
就目前而言,
hello是一个名称(读取变量),是hi函数的本地名称。据我所知,最好的方法是在全局空间(即调用函数的位置)中分配hello并将此类变量作为参数传递给函数。或者,如下所示,让hi返回hello -
你无法解决这个问题,一个函数的局部变量不能在另一个函数中看到:这都是局部变量的兴趣!
-
我相信这是XY problem,因为您正在尝试的内容不符合任何好的做法。你想达到什么目的?想要执行这种奇怪的编码的原因是什么?
-
@Pynchia 我上面使用的代码只是一些组合在一起的东西。我真的只是想在一个不同的函数中访问一个函数中定义的列表,而不是让它成为全局的。有点类似于 XY 问题:P
-
好吧,我想我可以尝试帮助您解决设计难题 :)
标签: python function variables global local