python - __name__= __main__怎么解释 怎么用 另外两个py文件之间的互动关联
巴扎黑
巴扎黑 2017-04-18 10:25:24
0
4
721

name = '__main__' 的作用
有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。
def foo():
    print('in foo')
print(__name__)
foo()
if __name__=='__main__':
    foo()
返回结果
main   意思是__name__=__main,所以if语句判断True。

ob05.py
def func():
    print("func() in ob05.py")
print("top-level in ob05.py")

if name == "__main__":
    print("ob05.py is being run directly")
else:
    print("ob05.py is being imported into another module")
结果:
top-level in ob05.py
ob05.py is being run directly

ob06.py
import ob05
print("top-level in ob06.py")
ob05.func()
if name == "__main__":
    print("ob06.py is being run directly")
else:
    print("ob06.py is being imported into another module")
结果:
top-level in ob05.py
ob05.py is being imported into another module
top-level in ob06.py
func() in ob05.py
ob06.py is being run directly

Thus, when module one gets loaded, its name equals "one" instead of __main__.
意思是ob05模块被导入的话,ob05模块中的__name__=__main__
解释错或不对不完善 麻烦完善下 
那import是干嘛用呢,就引入了一个func()?name == "__main__" 是什么意思 起什么作用

巴扎黑
巴扎黑

全部回覆(4)
大家讲道理

簡單來說就是每個Python程式碼檔案裡都可以寫上一段

if __name__ == '__main__':
    doSomething()

這裡的dosomething只會在你直接在終端執行這個文件的時候會被調用,而不會在作為包import到其他文件並執行那個文件時調用。

Peter_Zhu

這樣理解python中的if name == 'main':
https://github.com/pythonpeix...

Ty80

__name__:表示模組,類別等的名字;

__main__:表示模組,xxx.py檔案本身.

  • 直接執行時,對應的模組名稱就是__main__,可以在if __name__ == “__main__”:中加入你自己想要的,用於測試模組,示範模組用法等程式碼。

  • 作為模組,在其他地方被導入(import)時,模組名就是本身檔名xxx了。

小葫芦

函數有兩個主要作用:1.程式碼重用。 2、過程分解。這就意味著這你寫別的程式的時候可能會呼叫現在寫的這個函數。寫好一個函數後,我們需要測試這個函數或用它做一些工作,那我們就把要做的事情寫在 if __name__=='__main__': 裡面 。二天你寫別的程式呼叫這個模組的時候,它會執行 if __name__=='__main__':前面的函數,而不會執行if __name__=='__main__':裡面的程式碼。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!