前言
在我們瀏覽一下 python 文件或者自己寫 python 代碼的時候,時常會在代碼的最后加上這樣的一行代碼
if __name__ == '__main__':
python中name函數、func_name()
那么這一行代碼有什么具體的作用呢,不加的話會對我們的結果造成影響嗎?
__name__
首先對于用雙下劃線開頭且結尾的變量,在 Python 中被稱為內置變量,除了 __name__,我們常見的還有 __init__,__dict__ 等等.那么有多少內置變量呢?我們可以通過下面在交互界面輸入下面的命令,查看 Python 全部內置變量和內置函數
python nameerror,>>> dir(__builtins__)
結果如下圖:
不同情況下的 __name__ 的值
首先我們需要知道 __name__ 在不同情況下會有不同值,它的值取決于我們是如何執行腳本的.我們可以通過幾個例子感受一下:
python的__,Example 0
# test.py
print(f'__name__ 在 test.py 值為 {__name__}')
然后直接執行一下代碼
Python name、$ python test.py
然后看一下輸出
$ python test.py
__name__ 在 test.py 值為 __main__
爬蟲python,在這個例子中,我們發現 __name__ 的值是 __main__
Example 1
在這個例子中,我們重新創建一個腳本 test1.py 然后我們在 test1.py 中調用 test.py
# test1.py
python get?import test
print(f'__name__ 在 test1.py 值為 {__name__}')
接著執行一下 test1.py,再看一下輸出
python test1.py
python怎么用。__name__ 在 test.py 值為 test
__name__ 在 test1.py 值為 __main__
結果是不是很有意思?整個過程是什么樣子的呢?簡單的畫了一個圖
什么時候使用 __name__
有時候,我們用 Python 寫了一個腳本,當我們既希望這個腳本可以單獨運行,同樣希望它可以在其他的腳本中發揮作用. 這個時候就需要考慮使用 __name__ 了. 這里通過改造上面 Example 1的例子來直觀感受一下
修改一下 test.py 文件
# test.py
def hello(name):
print(f'Hello,{name}')
if __name__ == '__main__':
hello("test")
再修改一下 test1.py 文件
# test1.py
from test import hello
hello("test1")
然后讓我們先嘗試直接運行一下 test.py,很顯然這個時候, if 語句條件滿足,會輸出 Hello,test
$ python test.py
Hello,test
這個時候我們如果運行 test1.py,程序就會輸出 Hello,test1 了
$ python test1.py
Hello,test1
如果我們把 if __name__ == "__main__" 在 test.py 去掉會發生什么呢?
$ python test1.py
Hello,test
Hello,test1
參考
What does if name == “main”: do?
What's in a (Python's) name?
到此這篇關于Python __name__ 是什么的文章就介紹到這了,更多相關Python __name__ 內容請搜索我們以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持我們!
本文標題: 淺析Python __name__ 是什么
本文地址: http://www.cppcns.com/jiaoben/python/324756.html
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态