1. 程式人生 > 其它 >Python __name__ == ‘__main__’詳細解釋-Python零基礎入門教程

Python __name__ == ‘__main__’詳細解釋-Python零基礎入門教程

目錄

​ 零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門

學習過 C 語言或者 Java 語言的盆友應該都知道程式執行必然有主程式入口 main 函式,而 Python 卻不同,即便沒有主程式入口,程式一樣可以自上而下對程式碼塊依次執行,然後 Python 不少開源專案或者模組中依然存在 __name__ == “__main__” 這種寫法,具體是上面意思呢?

一.簡介

1.__name__

** __name__** 是 Python 的內建屬性,是系統全域性變數!每一個 py 檔案都有一個屬於自己的__name__:

** 如果 py 檔案作為模組被匯入(import),那麼 __name__ 就是該 py 檔案的檔名(也稱 模組名);**

** 如果 py 檔案直接執行時(Ctrl+Shift+F10),那麼 __name__ 預設等於字串”__main__”;**

舉個簡單的例子:假如你名字是張三

在朋友眼中,你是張三(__name__ == '張三')

在你自己眼中,你是你自己(__name__ == '__main__')

2.’__main__’

‘_ _main_ _’ 實際上就是一個

字串,用來鑑別程式入口,沒有太多花裡胡哨的東西.

3.__name__ == __main__‘****

當 .py 檔案被直接執行 (Ctrl+Shift+F10) 時,** if __name__ == ‘__main__’ 之下的程式碼塊將被執行,該語句就相當與 Python 的 main 主函式入口**,示例程式碼如下:

a.新建一個 my_name.py 檔案,作為模組檔案:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說程式設計
@Blog(個人部落格地址): www.codersrc.com
@File:Python __name__ == ‘__main__’.py
@Time:2021/04/24 08:00
@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!

"""

# 定義一個函式並列印 __name__
def prit_name():
    print("my_name.py __name__:", __name__)

if __name__ == "__main__":
    prit_name()

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

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說程式設計
@Blog(個人部落格地址): www.codersrc.com
@File:Python __name__ == ‘__main__’.py
@Time:2021/04/24 08:00
@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!

"""


# 匯入 my_name 模組
import my_name

# 定義一個函式並列印 __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 ,該檔案的內建屬性 __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 函式入口;

2.一個專案中必然會包含多個模組檔案,每個模組檔案在自己寫完程式碼之後會做一些簡單的測試用於檢測 bug 或者 對自己的函式呼叫寫一個簡單的示例,而恰到好處的是:__name__ == __main__ 既不會影響你的測試程式碼,也不會影響別人呼叫你的介面函式;

三.猜你喜歡

  1. Python for 迴圈
  2. Python 字串
  3. Python 列表 list
  4. Python 元組 tuple
  5. Python 字典 dict
  6. Python 條件推導式
  7. Python 列表推導式
  8. Python 字典推導式
  9. Python 函式宣告和呼叫
  10. Python 不定長引數 *argc/**kargcs
  11. Python 匿名函式 lambda
  12. Python return 邏輯判斷表示式
  13. Python 字串/列表/元組/字典之間的相互轉換
  14. Python 區域性變數和全域性變數
  15. Python type 函式和 isinstance 函式區別
  16. Python is 和 == 區別
  17. Python 可變資料型別和不可變資料型別
  18. Python 淺拷貝和深拷貝

未經允許不得轉載:猿說程式設計 » Python __name__ == ‘__main__’詳細解釋

本文由部落格 - 猿說程式設計 猿說程式設計 釋出!