下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第Python函數(shù)參數(shù)和注解的使用another_second不是僅限關鍵字參數(shù),而只是默認值參數(shù),因為它捕獲到了定位參數(shù)。
由此得知,定義僅限關鍵字參數(shù),必須把它放到*args參數(shù)后面,就像func函數(shù)一樣,反例是another_func函數(shù)。
還有第二個方法定義僅限關鍵字參數(shù),在簽名中放一個*:
deff(a,*,b):#b是僅限關鍵字參數(shù)
...returna,b
f(1,b=2)#只能傳關鍵字參數(shù)
(1,2)
f(1,2)#不能傳定位參數(shù)
Traceback(mostrecentcalllast):
File"input",line1,inmodule
TypeError:f()takes1positionalargumentbut2weregiven
f(1,2,3)#不能傳定位參數(shù)
Traceback(mostrecentcalllast):
File"input",line1,inmodule
TypeError:f()takes1positionalargumentbut3weregiven
僅限關鍵字參數(shù)不一定要有默認值,就像b一樣,強制必須傳入實參。
內(nèi)省中的函數(shù)參數(shù)
函數(shù)內(nèi)省的意思是說,當你拿到一個“函數(shù)對象”的時候,你可以繼續(xù)知道,它的名字,參數(shù)定義等信息。這些信息可以通過函數(shù)對象的屬性(一些雙下劃線的魔法方法)得到。
對于func函數(shù):
deffunc(first,*args,second="HelloWorld",**kwargs):
print(first)
print(second)
print(args)
print(kwargs)
和another_func函數(shù):
defanother_func(first,another_second="HelloWorld",*args,**kwargs):
print(first)
print(another_second)
print(args)
print(kwargs)
【__defaults__屬性】
元組,保存著定位參數(shù)和關鍵字參數(shù)的默認值。
print(func.__defaults__)#None
print(another_func.__defaults__)#('HelloWorld',)
【__kwdefaults__屬性】
字典,保存僅限關鍵字參數(shù)。
print(func.__kwdefaults__)#{'second':'HelloWorld'}
print(another_func.__kwdefaults__)#None
【__code__屬性】
code對象引用,code對象自身有很多屬性,其中包括參數(shù)名稱。
print(func.__code__.co_varnames)#('first','second','args','kwargs')
print(another_func.__code__.co_varnames)#('first','another_second','args','kwargs')
另外還可以使用inspect庫的signature方法來查看內(nèi)省中的函數(shù)參數(shù):
frominspectimportsignature
print(signature(func))
#(first,*args,second='HelloWorld',**kwargs)
框架和IDE等工具可以使用這些信息驗證代碼。
函數(shù)注解
如果刷過力扣算法題,那么對函數(shù)注解就不會陌生。比如:
defclip(text:str,max_len:'int0'=80)-str:
pass
參數(shù):后面是注解表達式,可以用來注解參數(shù)類型和約束。如果參數(shù)有默認值,注解放在參數(shù)名和=號之間。
可以在函數(shù)末尾的)和:之間添加-和注解表達式,來對返回值添加注解。
注解表達式可以是任何類型,最常用的類型是類(如str或int)和字符串(如'int0')。
函數(shù)注解只是個注解,Python對注解所做的唯一的事情是,把它們存入函數(shù)的__annotations__屬性中:
print(clip.__annotations__)
#{'text':class'str','max_len':'int0','return':class'str'}
Pytho
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡防護安全維護協(xié)議2026年
- 工業(yè)車間節(jié)能減排管理實施方案
- 外匯管理2026年外匯投資合同協(xié)議
- 幼兒園英語興趣培養(yǎng)活動方案
- 公司揭牌典禮主持詞范例模板
- 學前教育科學研究課程華師在線作業(yè)
- 營銷團隊目標設定與績效考核方案
- 2025-2030家居建材行業(yè)產(chǎn)品創(chuàng)新與銷售渠道規(guī)劃分析研究評估報告
- 2025-2030家具生產(chǎn)定制化隱性成本考量產(chǎn)品差異化定價機制驗證
- 2025-2030家具制造業(yè)市場發(fā)展分析研究行業(yè)前景趨勢家裝行業(yè)報告
- 抽水蓄能行業(yè)發(fā)展前景及投資風險預測分析報告
- “感恩父母擁抱親情”高一年級主題班會-課件
- 非甾體抗炎藥的臨床應用指南
- 超聲內(nèi)鏡穿刺的護理配合
- 網(wǎng)絡空間測繪與安全可視化技術
- 2022年中國工藝美術館招聘考試真題
- 防造假管理程序文件
- ktv股東合作協(xié)議書
- 2023年北京海淀區(qū)高三一?;瘜W試題及答案
- 腫瘤內(nèi)科靜脈給予抗腫瘤藥物評價標準
- 醫(yī)療器械生產(chǎn)質(zhì)量管理規(guī)范無菌醫(yī)療器械實施細則和檢查評定標準
評論
0/150
提交評論