日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

關(guān)于python中if __name=‘__main__‘的理解

作者:bingoCoder 更新時(shí)間: 2022-04-01 編程語言

關(guān)于’__name __’

首先創(chuàng)建兩個(gè)py文件A.py和B.py,我們來看一下他們各自的‘__name __’屬性。

A.py

print('this is A.my __name__ is: '+__name__)

B.py

print('this is B.my __name__ is: '+__name__)

輸出結(jié)果如下:
name屬性
由此可見它們的__name__屬性都是__main__。如果我們在A中引入B,即
在A的文件中加入import B語句。再看一下各自的__name__屬性。
A.py:

import B
print('this is A.my __name__ is: '+__name__)

執(zhí)行結(jié)果:
在這里插入圖片描述
當(dāng)B被引入時(shí),B的__name__屬性變成了自己的文件名,A依然是__main__。

為什么要使用 if __name __ == ‘__main’

可以看到剛才A在導(dǎo)入B的時(shí)候,B中的輸出語句被自動(dòng)執(zhí)行了,這顯然不是我們想看到的。一個(gè)py文件作為模塊被導(dǎo)入的時(shí),其中的函數(shù)會(huì)自動(dòng)執(zhí)行。在B.py中加入 if__name__ == ‘main’ 。把B中的print語句寫在if 判斷的下面。

if __name__  ==  '__main__' :
    print('this is B.my __name__ is: '+__name__)

再次執(zhí)行A。結(jié)果如下:
在這里插入圖片描述
這次執(zhí)行結(jié)果中就沒有了B的輸出語句。在設(shè)計(jì)一個(gè)被其他文件引入的模塊時(shí),可以將函數(shù)調(diào)用語句放到 if__name__ == ‘main’ 下面。這樣import模塊時(shí)就不會(huì)自動(dòng)執(zhí)行了。因?yàn)楸灰氲哪K的 name__屬性是文件名,不是__main___。
以上是我的粗淺理解。

原文鏈接:https://blog.csdn.net/bingocoder/article/details/121116173

欄目分類
最近更新