最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 函數(shù)那不為人知的一面

 更新時間:2021年11月09日 11:36:03   作者:somenzz  
通常我們定義一個函數(shù),然后調(diào)用該函數(shù)時,函數(shù)相關(guān)的代碼才開始執(zhí)行??墒呛芏嗳瞬⒉恢溃?dāng)我們定義函數(shù)時,一些代碼就開始執(zhí)行了。今天就來說說函數(shù)這個不為人知的一面

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

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

先看一段代碼:

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

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

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

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

不過通常情況下,參數(shù)都是不可變類型,如果傳入可變類型,可能每次的函數(shù)調(diào)用,其結(jié)果都會被改變,例如:

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

運行結(jié)果如下:

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

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

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,) 

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

相關(guān)文章

  • Python實現(xiàn)自動清理電腦垃圾文件詳解

    Python實現(xiàn)自動清理電腦垃圾文件詳解

    經(jīng)常存在在我們的電腦中的垃圾文件主要是指系統(tǒng)在運行過程中產(chǎn)生的tmp臨時文件、日志文件、臨時備份文件等。本文將利用Python實現(xiàn)自動清理這些垃圾文件,需要的可以參考一下
    2022-03-03
  • pytorch中transform.Compose()用法詳解

    pytorch中transform.Compose()用法詳解

    PyTorch是一個開源的Python機器學(xué)習(xí)庫,基于Torch,用于自然語言處理等應(yīng)用程序,這篇文章主要介紹了pytorch中transform.Compose()用法,需要的朋友可以參考下
    2023-10-10
  • Python實現(xiàn)在線批量美顏功能過程解析

    Python實現(xiàn)在線批量美顏功能過程解析

    這篇文章主要介紹了Python實現(xiàn)在線批量美顏功能過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • python之用Numpy和matplotlib畫一個魔方

    python之用Numpy和matplotlib畫一個魔方

    這篇文章主要介紹了如何用Numpy和matplotlib畫一個魔方,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Python中的進程分支fork和exec詳解

    Python中的進程分支fork和exec詳解

    這篇文章主要介紹了Python中的進程分支fork和exec詳解,本文用實例講解fork()的使用,并講解了exec相關(guān)的8個方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python簡單鼠標自動點擊某區(qū)域的實例

    python簡單鼠標自動點擊某區(qū)域的實例

    今天小編就為大家分享一篇python簡單鼠標自動點擊某區(qū)域的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實現(xiàn)拼接多張圖片的方法

    Python實現(xiàn)拼接多張圖片的方法

    這篇文章主要介紹了Python實現(xiàn)拼接多張圖片的方法,以具體的實際應(yīng)用引出Python拼接圖片的思路并給出了實現(xiàn)的具體方法,需要的朋友可以參考下
    2014-12-12
  • python對比兩個字典dict的差異詳解

    python對比兩個字典dict的差異詳解

    這篇文章主要為大家詳細介紹了python?如何對比兩個字典dict的不同差異,文中的示例代碼簡潔易懂,具有一定的學(xué)習(xí)價值,感興趣的可以了解一下
    2023-05-05
  • Python實戰(zhàn)小項目之身份證信息校驗

    Python實戰(zhàn)小項目之身份證信息校驗

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python做一個身份證信息校驗的小項目,大家可以在過程中查缺補漏,提升水平
    2021-10-10
  • 基于Python執(zhí)行dos命令并獲取輸出的結(jié)果

    基于Python執(zhí)行dos命令并獲取輸出的結(jié)果

    這篇文章主要介紹了基于Python執(zhí)行dos命令并獲取輸出的結(jié)果,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12

最新評論

察雅县| 冷水江市| 旬邑县| 卫辉市| 盱眙县| 贡觉县| 马鞍山市| 华容县| 石景山区| 宁德市| 华坪县| 离岛区| 栖霞市| 康马县| 秦安县| 荣昌县| 汝城县| 友谊县| 大宁县| 页游| 清流县| 确山县| 普兰店市| 阿尔山市| 农安县| 昆山市| 闽侯县| 大关县| 故城县| 武鸣县| 昌乐县| 蒲城县| 依兰县| 米脂县| 柘城县| 东海县| 衡南县| 安国市| 宁蒗| 衡山县| 都江堰市|