[英]Python 3 built-in functions and classes
當我使用以下語句創建list
a = list('jane')
我是在調用Python的內置list
函數還是實例化list
類。
我的理解是我們通過傳遞'jane'
作為參數來實例化list
類。
但是,Python的文檔https://docs.python.org/3/library/functions.html表示list()
是內置函數。
您提到的文檔頁面將回答您的問題:
class list([iterable])
List實際上不是可變的序列類型,而是List和Sequence Types(list,tuple,range)中記錄的,而不是一個可變的序列類型。
在Python中,類和函數都是可調用的,因此在實踐中,您可以將它們視為相同。
文檔明確指出:
class list([iterable])
list
實際上不是可變函數,而是可變的序列類型
您可以輕松檢查以下內容:
>>> type(list)
type
如果它是一個函數,那么function
將是使用type
提供的輸出。
實例化list
對象的方式與創建自己的類並調用它的方式相同。 type
的__call__
本質上會被調用並設置您的實例,因此,盡管它們本身不是函數,但它們是可調用的。
它們在該特定部分中列出的事實可能是為了方便起見,這可能會使您感到困惑,但是閱讀該說明會消除歧義。
您正在實例化一個列表。
class list([iterable])
list實際上不是可變的,而是可變的序列類型,如Lists和Sequence Types(列表,元組,范圍)中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.