# `__name__ == "__main__"`是什么?
> 原文: [https://thepythonguru.com/what-is-if-__name__-__main__/](https://thepythonguru.com/what-is-if-__name__-__main__/)
* * *
于 2020 年 1 月 7 日更新
* * *
Python 中的每個模塊都有一個稱為`__name__`的特殊屬性。 當模塊作為主程序運行時,`__name__`屬性的值設置為`'__main__'`。 否則,將`__name__`的值設置為包含模塊的名稱。
考慮以下代碼,以更好地理解。
```py
# file my_module.py
foo = 100
def hello():
? ? print("i am from my_module.py")
if __name__ == "__main__":
? ? print("Executing as main program")
? ? print("Value of __name__ is: ", __name__)
? ? hello()
```
在這里,我們定義了一個新模塊`my_module`。 通過輸入以下代碼,我們可以將該模塊作為主程序執行:
```py
python my_module.py
```
**預期輸出**:
```py
Executing as main program
Value of __name__ is: __main__
i am from my_module.py
```
```py
# file my_module.py
foo = 100
def hello():
print("i am from my_module.py")
if __name__ == "__main__":
print("Executing as main program")
print("Value of __name__ is: ", __name__)
hello()
```
在這里,我們正在創建一個新模塊并將其作為主程序執行,因此`__name__`的值設置為`'__main__'`。 結果,如果條件滿足,則函數`hello()`被調用。
現在創建一個名為`module.py`的新文件,并編寫以下代碼:
```py
import my_module
print(my_module.foo)
my_module.hello()
print(my_module.__name__)
```
**預期輸出**:
```py
100
i am from my_module.py
my_module
```
如您現在所見,由于`__name__`的值設置為`'my_module'`,因此`my_module`中的`if`語句執行失敗。
* * *
* * *
- 初級 Python
- python 入門
- 安裝 Python3
- 運行 python 程序
- 數據類型和變量
- Python 數字
- Python 字符串
- Python 列表
- Python 字典
- Python 元組
- 數據類型轉換
- Python 控制語句
- Python 函數
- Python 循環
- Python 數學函數
- Python 生成隨機數
- Python 文件處理
- Python 對象和類
- Python 運算符重載
- Python 繼承與多態
- Python 異常處理
- Python 模塊
- 高級 Python
- Python *args和**kwargs
- Python 生成器
- Python 正則表達式
- 使用 PIP 在 python 中安裝包
- Python virtualenv指南
- Python 遞歸函數
- __name__ == "__main__"是什么?
- Python Lambda 函數
- Python 字符串格式化
- Python 內置函數和方法
- Python abs()函數
- Python bin()函數
- Python id()函數
- Python map()函數
- Python zip()函數
- Python filter()函數
- Python reduce()函數
- Python sorted()函數
- Python enumerate()函數
- Python reversed()函數
- Python range()函數
- Python sum()函數
- Python max()函數
- Python min()函數
- Python eval()函數
- Python len()函數
- Python ord()函數
- Python chr()函數
- Python any()函數
- Python all()函數
- Python globals()函數
- Python locals()函數
- 數據庫訪問
- 安裝 Python MySQLdb
- 連接到數據庫
- MySQLdb 獲取結果
- 插入行
- 處理錯誤
- 使用fetchone()和fetchmany()獲取記錄
- 常見做法
- Python:如何讀取和寫入文件
- Python:如何讀取和寫入 CSV 文件
- 用 Python 讀寫 JSON
- 用 Python 轉儲對象