[英]Initializing empty Python data structures
在可用於創建空Python列表/詞典的兩種語法形式之間是否存在任何實際差異,即
l = list()
l = []
和:
d = dict()
d = {}
我想知道使用一個是否優於另一個。
函數形式在運行時調用構造函數以返回新實例,而文字形式使編譯器在編譯時“創建”它(實際上,發出導致新對象的字節碼)。 如果(由於某種原因)類已經在本地反彈到不同類型,前者可能很有用。
>>> def f():
... []
... list()
... {}
... dict()
...
>>> dis.dis(f)
2 0 BUILD_LIST 0
3 POP_TOP
3 4 LOAD_GLOBAL 0 (list)
7 CALL_FUNCTION 0
10 POP_TOP
4 11 BUILD_MAP 0
14 POP_TOP
5 15 LOAD_GLOBAL 1 (dict)
18 CALL_FUNCTION 0
21 POP_TOP
22 LOAD_CONST 0 (None)
25 RETURN_VALUE
主要區別在於一個表單包含名稱查找,而另一個表單不包括。 說明這種差異的示例:
def list():
return {}
print []
print list()
版畫
[]
{}
當然你絕對不應該做這樣的廢話。
我的直覺告訴我,只要你保持一致,兩者都是可以接受的。
我不知道有什么不同,主要是風格偏好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.