Rumah  >  Soal Jawab  >  teks badan

python - __name__= __main__怎么解释 怎么用 另外两个py文件之间的互动关联

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__" 是什么意思 起什么作用

巴扎黑巴扎黑2741 hari yang lalu731

membalas semua(4)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 10:27:24

    Ringkasnya, anda boleh menulis perenggan dalam setiap fail kod Python

    if __name__ == '__main__':
        doSomething()

    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.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:27:24

    Ini adalah cara untuk memahami jika nama == 'utama' dalam python:
    https://github.com/pythonpeix...

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:27:24

    __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.

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:27:24

    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__':.

    balas
    0
  • Batalbalas