我想在不同的函数之间传递值(作为变量)。
例如,我将值分配给一个函数中的列表,然后我想在另一个函数中使用该列表:
list = []
def defineAList():
list = ['1','2','3']
print "For checking purposes: in defineAList, list is",list
return list
def useTheList(list):
print "For checking purposes: in useTheList, list is",list
def main():
defineAList()
useTheList(list)
main()
我希望这样做如下:
- 将’list’初始化为空列表;打电话给 main (这,至少,我知道我做对了……)
- 在 defineAList() 中,将某些值分配到列表中;然后将新列表传递回 main()
- 在 main() 中,调用 useTheList(list)
- 由于’list’包含在useTheList函数的参数中,我希望useTheList现在将使用defineAList()定义的列表,而不是调用main之前定义的空列表。
但是,我的输出是:
For checking purposes: in defineAList, list is ['1', '2', '3']
For checking purposes: in useTheList, list is []
“返回”没有达到我的预期。它实际上是做什么的?如何从 defineAList() 中获取列表并在 useTheList() 中使用它?
我不想使用全局变量。
原文由 user2113818 发布,翻译遵循 CC BY-SA 4.0 许可协议
这就是实际发生的事情:
这就是你想要的:
您甚至可以跳过临时的
returned_list
并将返回值直接传递给useTheList
: