我已经花了几个小时在这里和其他地方阅读以及尝试,但我并不真正了解我确定的是一个非常基本的概念:传递值(作为变量)在不同的功能之间。Python:在函数之间传递变量
例如,我在一个函数一大堆值分配给一个列表,然后以后要使用在其他功能列表:根据我的理解是什么函数参数做,我
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()中使用它?当我看到它们发生时,我倾向于更好地理解事物,但我见过的正确参数传递的很多示例也使用了我不熟悉的代码,并且在确定发生了什么的过程中,我我并没有真正理解这个概念。我使用2.7。
ETA-在过去,问了一个类似的问题,有人建议我使用全局变量而不是仅仅局部变量。如果在这里也是相关的 - 为了我所采用的课程的目的,我们不允许使用全局变量。
谢谢!
谢谢您的详细解释!我知道我在这里错过了一些基本的东西。 :) – user2113818
请不要命名的东西'列表',你失去了调用内置'列表'的能力:) –
我不写我什么时候我真的打算跑的目的! – user2113818