亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中的main函數(shù)與import用法

 更新時(shí)間:2022年11月09日 11:09:49   作者:xiongxyowo  
這篇文章主要介紹了Python中的main函數(shù)與import用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

main函數(shù)與import用法

在python中,如果自己封裝的庫文件中有函數(shù)外的語句,那么這些語句是會(huì)在庫函數(shù)被導(dǎo)入時(shí)自動(dòng)執(zhí)行的,這樣就會(huì)出現(xiàn)一些奇怪的問題,一個(gè)例子如下所示。

目錄結(jié)構(gòu)如下

  • A.py
  • B.py

B.py中的內(nèi)容如下:

def print_B():
? ? print("B")

print("starting B")

A.py中使用import導(dǎo)入print_B()方法:

from B import print_B
print_B()

結(jié)果如下:

starting B
B

可以發(fā)現(xiàn)B.py中的函數(shù)外語句是會(huì)自動(dòng)先執(zhí)行的。但有時(shí)候我們確實(shí)希望直接運(yùn)行封裝的庫能夠執(zhí)行某些功能,但又不希望這些功能在被import的時(shí)候被觸發(fā),這個(gè)時(shí)候,就可以把這部分功能顯式的放在main方法中。

修改后的B.py如下所示:

def print_B():
? ? print("B")

if __name__ == "__main__":
? ? print("starting B")

此時(shí)運(yùn)行A.py,結(jié)果如下:

B

main函數(shù)的作用以及解釋

python 中name == ‘__main__’ 的作用

  • 經(jīng)典的英文解釋:Make a script both importable and executable
  • 中文解釋:使腳本可以被調(diào)用import并且也可以直接運(yùn)行

1、直接運(yùn)行

# cat test_fun.py
def fun():
? ? print(__name__)
? ? print('this is fun')


if __name__ == '__main__':
? ? fun()
? ? print('this is main')
python test_fun.py
__main__
this is fun
this is main

2、被調(diào)用import

>>> import test_fun
>>> test_fun.fun()
test_fun
this is fun

調(diào)用導(dǎo)入時(shí):此處輸出沒有顯示”main“,也就是說模塊name = ‘main’ 下面的代碼并未執(zhí)行,main函數(shù)沒有執(zhí)行。

這個(gè)功能還有一個(gè)用處:

調(diào)試代碼的時(shí)候,在”if name == ‘main‘“中加入一些我們的調(diào)試代碼,我們可以讓外部模塊調(diào)用的時(shí)候不執(zhí)行我們的調(diào)試代碼,但是如果我們想排查問題的時(shí)候,直接執(zhí)行該模塊文件,調(diào)試代碼能夠正常運(yùn)行!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題

    解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題

    這篇文章主要介紹了解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Pytorch訓(xùn)練過程出現(xiàn)nan的解決方式

    Pytorch訓(xùn)練過程出現(xiàn)nan的解決方式

    今天小編就為大家分享一篇Pytorch訓(xùn)練過程出現(xiàn)nan的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python try except finally資源回收的實(shí)現(xiàn)

    Python try except finally資源回收的實(shí)現(xiàn)

    這篇文章主要介紹了Python try except finally資源回收的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python編程深度學(xué)習(xí)計(jì)算庫之numpy

    Python編程深度學(xué)習(xí)計(jì)算庫之numpy

    今天小編就為大家分享一篇關(guān)于Python編程深度學(xué)習(xí)計(jì)算庫之numpy,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Python中生成器和yield語句的用法詳解

    Python中生成器和yield語句的用法詳解

    這篇文章主要介紹了Python中生成器和yield語句的用法,生成器是Python編程進(jìn)階中的重要知識(shí)點(diǎn),需要的朋友可以參考下
    2015-04-04
  • Python之parser.add_argument解讀

    Python之parser.add_argument解讀

    這篇文章主要介紹了Python之parser.add_argument解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python切片(獲取一個(gè)子列表(數(shù)組))詳解

    python切片(獲取一個(gè)子列表(數(shù)組))詳解

    這篇文章主要介紹了python切片(獲取一個(gè)子列表(數(shù)組))詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python與Matlab混合編程的實(shí)現(xiàn)案例

    Python與Matlab混合編程的實(shí)現(xiàn)案例

    本文主要介紹了Python與Matlab混合編程的實(shí)現(xiàn)案例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python使用PyQt5/PySide2編寫一個(gè)極簡的音樂播放器功能

    Python使用PyQt5/PySide2編寫一個(gè)極簡的音樂播放器功能

    這篇文章主要介紹了Python中使用PyQt5/PySide2編寫一個(gè)極簡的音樂播放器功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • yolov5使用flask部署至前端實(shí)現(xiàn)照片\視頻識(shí)別功能

    yolov5使用flask部署至前端實(shí)現(xiàn)照片\視頻識(shí)別功能

    初學(xué)者在使用YOLO和Flask構(gòu)建應(yīng)用時(shí),往往需要實(shí)現(xiàn)上傳圖片和視頻的識(shí)別功能,本文介紹了如何在Flask框架中實(shí)現(xiàn)這一功能,包括文件上傳、圖片放大查看、視頻識(shí)別以及識(shí)別后的文件下載,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09

最新評(píng)論