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__’詳細解釋

本文由博客 - 猿說編程 猿說編程 發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM