4 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
有些附帶注釋的接口是提供給用戶看的,告訴用戶如何使用,而源碼是被加密保護(hù)的,至于保護(hù)的手段,不同的人各有不同。除非完全開源,否則有的函數(shù)的實(shí)現(xiàn)代碼你是看不到的,你最多看到一些接口說(shuō)明。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
python是C語(yǔ)言實(shí)現(xiàn)的,盡管有很多標(biāo)準(zhǔn)庫(kù)是由python代碼實(shí)現(xiàn),但是涉及到底層支撐架構(gòu)的功能還是C代碼。一些IDE為了對(duì)這些進(jìn)行友好代碼提示,會(huì)弄和底層一樣的訪問(wèn)接口,而其實(shí)現(xiàn)直接寫 pass
略過(guò)。
另外,聽樓上 “此用戶無(wú)昵稱” 的意思是說(shuō)看不到是因?yàn)樵创a被加密保護(hù),這種觀點(diǎn)是不對(duì)的,cpython的代碼是開源的。

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
這個(gè)不是源碼、只是一個(gè)類似于“接口”的東西、只能從這里看到有哪些函數(shù)(方法)、都有些什么參數(shù)。

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
底層是用c語(yǔ)言實(shí)現(xiàn)的,所以代碼并沒(méi)有真正的調(diào)用你貼的這些源碼。
但是這些源碼是非常有用的,因?yàn)楫?dāng)你help(str)
的時(shí)候,他們會(huì)顯示出來(lái)。目的就是每個(gè)函數(shù)是做什么的,通過(guò)注釋反射實(shí)現(xiàn)文檔的一種方式。
比如下面定義的函數(shù)
def func(a: int, b: str):
return b * a
int和str并沒(méi)有任何作用,但是當(dāng)你用inspect.getfullargspec(func).annotations
的時(shí)候能看到每個(gè)變量的定義一樣,當(dāng)然定義除了可以是類,還可以是函數(shù),常量等。
添加回答
舉報(bào)