在 Python 的解释器中输入 func1([1,2])的时候究竟发生了什么?

2016-12-07 08:05:11 +08:00
 litos

当我们在 Python 中创建一个 variable 的时候,很多时候我们会给 variable 一个名字:

myList = [1,2]

我的理解(很可能是错误的)是,系统会分配一些空间给我们的[1,2],然后还会有一个 referencemyList,指向[1,2]. 现在的问题是,假设我们有一个函数,它的参数是 list :

def func(myList):
  return 0

当我们输入func([1,2])的时候, Python 如何保存[1,2]这个东西?

2281 次点击
所在节点    Python
4 条回复
litos
2016-12-07 08:24:30 +08:00
刚反应过来,这是个无聊的问题,大家无视吧……
kindjeff
2016-12-07 08:25:55 +08:00
在栈里创建[1, 2],然后让 myList 作为它的引用。
chengluyu
2016-12-07 10:17:58 +08:00
如果你想了解 Python 是怎样执行这段代码的,可以去看 Python 的实现。不过可能需要很多 prerequisites ,比如编译原理等知识。
czheo
2016-12-08 17:42:46 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/325799

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX