例如:
class str(object):
"""
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
"""
其中一個(gè)函數(shù)
def capitalize(self): # real signature unknown; restored from __doc__
"""
S.capitalize() -> str
Return a capitalized version of S, i.e. make the first character
have upper case and the rest lower case.
"""
return ""
這個(gè)函數(shù)到底返回了什么?難道返回了一個(gè)空字符嗎?
def endswith(self, suffix, start=None, end=None): # real signature unknown; restored from __doc__
"""
S.endswith(suffix[, start[, end]]) -> bool
Return True if S ends with the specified suffix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
suffix can also be a tuple of strings to try.
"""
return False
這個(gè)函數(shù),返回False ,什么意思?
def find(self, sub, start=None, end=None): # real signature unknown; restored from __doc__
"""
S.find(sub[, start[, end]]) -> int
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
"""
return 0
這個(gè)返回一個(gè)0 ?
def format(self, *args, **kwargs): # known special case of str.format
"""
S.format(*args, **kwargs) -> str
Return a formatted version of S, using substitutions from args and kwargs.
The substitutions are identified by braces ('{' and '}').
"""
pass
這個(gè)是一pass結(jié)尾的,那么要這個(gè)函數(shù)有什么意義
但是我在實(shí)際應(yīng)用他們的時(shí)候,返回的并不是這樣的?
我現(xiàn)在的以為是:這個(gè)類里面的這些函數(shù),函數(shù)體里面什么邏輯都沒(méi)有寫?那么函數(shù)是怎么運(yùn)行的?
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ò)。
另外,聽(tīng)樓上 “此用戶無(wú)昵稱” 的意思是說(shuō)看不到是因?yàn)樵创a被加密保護(hù),這種觀點(diǎn)是不對(duì)的,cpython的代碼是開(kāi)源的。
底層是用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ù),常量等。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。