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__" 是什么意思 起什么作用
Ringkasnya, anda boleh menulis perenggan dalam setiap fail kod Python
Dosomething di sini hanya akan dipanggil apabila anda melaksanakan fail ini terus dalam terminal, dan tidak akan dipanggil apabila anda mengimportnya sebagai pakej ke fail lain dan melaksanakan fail tersebut.
Ini adalah cara untuk memahami jika nama == 'utama' dalam python:
https://github.com/pythonpeix...
__name__: Menunjukkan nama modul, kelas, dsb.
__main__: mewakili modul, fail xxx.py itu sendiri.
Apabila
dilaksanakan secara langsung, nama modul yang sepadan ialah __main__ Anda boleh menambah kod yang anda inginkan dalam
if __name__ == “__main__”:
untuk menguji modul, menunjukkan penggunaan modul, dsb.Sebagai modul, apabila ia diimport ke tempat lain, nama modul ialah nama failnya sendiri xxx.
Fungsi mempunyai dua fungsi utama: 1. Penggunaan semula kod. 2. Proses penguraian. Ini bermakna apabila anda menulis program lain, anda boleh memanggil fungsi yang anda tulis sekarang. Selepas menulis fungsi, kita perlu menguji fungsi atau melakukan beberapa kerja dengannya, kemudian kita menulis perkara yang ingin kita lakukan jika __name__=='__main__':. Apabila anda menulis atur cara lain untuk memanggil modul ini pada hari berikutnya, ia akan melaksanakan fungsi di hadapan if __name__=='__main__':, tetapi bukan kod di dalamnya if __name__=='__main__':.