久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python __name__ == ‘__main__’詳細解釋(27)

 軟件開發(fā)組 2020-07-12

   學習過C語言或者Java語言的盆友應該都知道程序運行必然有主程序入口main函數(shù),而python卻不同,,即便沒有主程序入口,,程序一樣可以自上而下對代碼塊依次運行,然后python不少開源項目或者模塊中依然存在 __name__ == “__main__” 這種寫法,,具體是上面意思呢,?

一.語義解釋

    1.__name__

    __name__ 是python的內(nèi)置屬性,是系統(tǒng)全局變量,!每一個py文件都有一個屬于自己的__name__:

    如果py文件作為模塊被導入(import),,那么__name__就是該py文件的文件名(也稱 模塊名);

    如果py文件直接運行時(Ctrl+Shift+F10),,那么__name__默認等于字符串”__main__”;

    舉個簡單的例子:假如你名字是張三,,在朋友眼中,你是python基礎教程張三(__name__ == '張三'),;在你自己眼中,,你是你自己(__name__ == '__main__')

    2.”__main__”

    “_ _main_ _” 實際上就是一個字符串,用來鑒別程序入口,,沒有太多花里胡哨的東西.

    3.__name__ == “__main__”

    當.py文件被直接運行 (Ctrl+Shift+F10)時,, if  __name__ == “__main__”  之下的代碼塊將被運行,該語句就相當與python的main主函數(shù)入口,,示例代碼如下:

    a.新建一個 my_name.py 文件,,作為模塊文件:

復制代碼

# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:何以解憂
@Blog(個人博客地址): shuopython.com
@WeChat Official Account(微信公眾號):猿說python
@Github:www.github.com
 
@File:my_name.py
@Time:2019/10/14 22:02
 
@Motto:不積跬步無以至千里,不積小流無以成江海,,程序人生的精彩需要堅持不懈地積累,!"""

# 定義一個函數(shù)并打印 __name__def prit_name():

print("my_name.py __name__:", __name__)

if __name__ == "__main__": prit_name()

復制代碼

    b.新建一個 python_main.py 文件,作為啟動文件 (Ctrl+Shift+F10):

復制代碼

# 導入 my_name 模塊import my_name 
# 定義一個函數(shù)并打印 __name__def prit_name():

my_name.prit_name()

print("python_main.py __name__:", __name__)

if __name__ == "__main__": prit_name()

復制代碼

    輸出結果:

my_name.py __name__: my_name
python_main.py __name__: __main__

    由此可見,,作為啟動文件 python_main.py ,,該文件的內(nèi)置屬性 __name__ 等于 “__main__”,而my_name.py 作為導入模塊,,該模塊的 __name__ 等于文件名(也稱模塊名字),,所以my_name.py 中的 表達式 if __name__ == “__main__” 并不成立!

    當直接將my_name.py作為啟動文件時 (Ctrl+Shift+F10),,輸出:

my_name.py __name__: __main__

    如果py文件作為模塊被導入(import),,那么__name__就是該py文件的文件名(也稱 模塊名);

    如果py文件直接運行時(Ctrl+Shift+F10),,那么__name__默認等于字符串”__main__”;

二.作用

    1.__name__ == “__main__” 作為啟動py文件的main函數(shù)入口

    2.一個項目中必然會包含多個模塊文件,,每個模塊文件在自己寫完代碼之后會做一些簡單的測試用于檢測bug 或者 對自己的函數(shù)調用寫一個簡單的示例,而恰到好處的是:__name__ == “__main__”  既不會影響你的測試代碼,,也不會影響別人調用你的接口函數(shù),。

驚喜

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多