抱歉,如果这没有任何意义,我是 Python 的新手!
通过在解释器中的测试,我可以看到 list()
和 []
都产生了一个空列表:
>>> list()
[]
>>> []
[]
根据我目前所学,创建对象的唯一方法是调用其构造函数 (__init__
),但是当我只键入 时我没有看到这种情况发生[]
。那么通过执行 []
,Python 是否会将其映射到对 list()
的调用?
最佳答案
这两个构造的处理方式截然不同:
>>> import dis
>>> def f(): return []
...
>>> dis.dis(f)
1 0 BUILD_LIST 0
3 RETURN_VALUE
>>> def f(): return list()
...
>>> dis.dis(f)
1 0 LOAD_GLOBAL 0 (list)
3 CALL_FUNCTION 0
6 RETURN_VALUE
>>>
[]
形式使用操作码BUILD_LIST
构造列表,而list()
形式调用list
对象的构造函数。
关于python - 在 Python 中创建一个列表——有什么鬼鬼祟祟的事情发生吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736693/