欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

先看一段代碼:

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

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

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

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

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

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) 

運(yùn)行結(jié)果如下:

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

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

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解PyQt5中textBrowser顯示print語(yǔ)句輸出的簡(jiǎn)單方法

    詳解PyQt5中textBrowser顯示print語(yǔ)句輸出的簡(jiǎn)單方法

    這篇文章主要介紹了詳解PyQt5中textBrowser顯示print語(yǔ)句輸出的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 使用Python測(cè)試Ping主機(jī)IP和某端口是否開(kāi)放的實(shí)例

    使用Python測(cè)試Ping主機(jī)IP和某端口是否開(kāi)放的實(shí)例

    今天小編就為大家分享一篇使用Python測(cè)試Ping主機(jī)IP和某端口是否開(kāi)放的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python中返回矩陣的行列方法

    python中返回矩陣的行列方法

    下面小編就為大家分享一篇python中返回矩陣的行列方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 利用python numpy+matplotlib繪制股票k線圖的方法

    利用python numpy+matplotlib繪制股票k線圖的方法

    這篇文章主要介紹了利用python numpy+matplotlib繪制股票k線圖的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式實(shí)例及原理解析

    Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式實(shí)例及原理解析

    這篇文章主要介紹了Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式實(shí)例及原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 使用python實(shí)現(xiàn)將excel數(shù)據(jù)導(dǎo)入word并設(shè)置字體樣式的代碼示例

    使用python實(shí)現(xiàn)將excel數(shù)據(jù)導(dǎo)入word并設(shè)置字體樣式的代碼示例

    在日常辦公和數(shù)據(jù)處理中,我們經(jīng)常需要將Excel中的數(shù)據(jù)導(dǎo)入到Word文檔中,手動(dòng)完成這個(gè)過(guò)程可能既費(fèi)時(shí)又容易出錯(cuò),本文將介紹如何使用Python自動(dòng)化這一任務(wù),需要的朋友可以參考下
    2024-02-02
  • python list刪除元素時(shí)要注意的坑點(diǎn)分享

    python list刪除元素時(shí)要注意的坑點(diǎn)分享

    下面小編就為大家分享一篇python list刪除元素時(shí)要注意的坑點(diǎn)分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • mac系統(tǒng)下Redis安裝和使用步驟詳解

    mac系統(tǒng)下Redis安裝和使用步驟詳解

    這篇文章主要介紹了mac下Redis安裝和使用步驟詳解,并將python如何操作Redis做了簡(jiǎn)單介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python的版本

    ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python的版本

    這篇文章主要給大家介紹了關(guān)于ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python版本的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ubuntu具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-12-12
  • Python?Excel操作從零學(xué)習(xí)掌握openpyxl用法

    Python?Excel操作從零學(xué)習(xí)掌握openpyxl用法

    這篇文章主要為大家介紹了Python?Excel操作從零學(xué)習(xí)掌握openpyxl用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評(píng)論