在过去的几个小时里,我在这里和其他地方阅读并进行了实验,但我并没有真正理解我确信是一个非常基本的概念:在不同函数之间传递值(作为变量)。
例如,我将一大堆值分配给一个函数中的列表,然后想稍后在另一个函数中使用该列表:
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-在过去,问了一个类似的问题,有人建议我使用全局变量而不仅仅是局部变量。如果它在这里也是相关的——为了我正在上课的目的,我们不允许使用全局变量。
谢谢!