Python中if __name__==‘__main__‘用法詳情

前言:

我們先定義一個test01.py的文件。

test01.py中代碼如下所示:

def step():
	print(__name__)
    print('step1 買菜'
          'step2 洗菜'
          'step3 切菜'
          'step4 炒菜')
if __name__=='__main__':
    print('準備制作菜品')
    step()
    print('制作完成')

輸出結果:

註意:這段代碼中輸出的第一句。

print(__name__)

if __name__=='__main__'是一個判斷模塊是以什麼形式運行的語句。

如果這個模塊本身不被其他模塊調用,而是自己運行的,,那麼有沒有
if __name__=='__main__',執行效果應該都是一樣的,這時__name__的值就等於'__本模塊名 + main__'

如果這個模塊被其他模塊調用。會出現什麼情況呢?

如圖所示定義一個test02.py文件:

輸出結果如圖所示:

我們發現,在test01中的輸出語句“準備制作菜品”、“制作完成”並沒有輸出。
不難看出,test02不符合test01中if __name __= __main__的判斷條件。

敲黑板總結啦:

__name__是用來標識模塊名字的一個系統變量。這裡分兩種情況:第一種情況指的是當前運行的模塊,那麼當前模塊__name__的值就為"main";
第二種情況指的是該模塊是使用import導入的模塊,那麼這個被導入模塊的__name__變量的值為該模塊的文件名。

再來看一個例子:

test_one.py:

def test_function():
  print(__name__)
def test1_function(name):
  print(type(name), name)

test.py:

from test_one import *
test_function()
test1_function(__name__)

輸出結果:

到此這篇關於Python中if __name__==‘__main__‘用法詳情的文章就介紹到這瞭,更多相關Python if __name__==‘__main__‘ 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: