五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Python 函數那不為人知的一面

發(fā)布日期:2021-12-13 04:24 | 文章來源:gibhub

通常我們定義一個函數,然后調用該函數時,函數相關的代碼才開始執(zhí)行。可是很多人并不知道,當我們定義函數時,一些代碼就開始執(zhí)行了。今天就來說說函數這個不為人知的一面。

通常我們定義一個函數,然后調用該函數時,函數相關的代碼才開始執(zhí)行??墒呛芏嗳瞬⒉恢?,當我們定義函數時,一些代碼就開始執(zhí)行了。今天就來說說函數這個不為人知的一面。

先看一段代碼:

def do_something(opt: print('參數 opt'), arg=print('參數 arg')) -> print('函數的返回值'): 
 print("do something runing") 
 
if __name__ == '__main__': 
 pass 

上面的代碼我們定義來一個函數,但是并沒有調用它,那么它會輸出信息嗎?

會的,參數里無論是類型提示部分,還是默認賦值部分,還是返回值的類型提示,里面的語句都會被執(zhí)行,結果如下:

這個做法我自己是很少見的。把 print 函數換成打開文件、連接數據庫之類的操作,也都會被執(zhí)行。

不過通常情況下,參數都是不可變類型,如果傳入可變類型,可能每次的函數調用,其結果都會被改變,例如:

def do_something(opt: print("參數 opt"), arg=[]) -> print("函數的返回值"): 
 print("do something runing") 
 print(f"{arg = }") 
 arg.append(0) 
 
if __name__ == "__main__": 
 do_something(opt=1) 
 do_something(opt=1) 

運行結果如下:

可以發(fā)現,調用兩次函數 do_something,雖然并沒有傳入 arg 參數,arg 的值已經發(fā)送了變化。如果不注意這點,可能會有 bug 發(fā)生。在 Pythcarm 中,會警告我們 arg 是可變對象:

如果要獲取函數的類型提示、默認值,可以這樣:

def do_something(opt: 1, arg=2) -> 3: 
 print("do something runing") 
 print(f"{arg = }") 
 arg.append(0) 
 
 
if __name__ == "__main__": 
 print(f"{do_something.__annotations__ = }") 
 print(f"{do_something.__defaults__ = }") 
 
#do_something.__annotations__ = {'opt': 1, 'return': 3} 
#do_something.__defaults__ = (2,) 

到此這篇關于Python 函數那不為人知的一面的文章就介紹到這了,更多相關Python 函數內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部