Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours732

répondre à tous(4)je répondrai

  • 大家讲道理

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

    Pour faire simple, vous pouvez écrire un paragraphe dans chaque fichier de code Python

    if __name__ == '__main__':
        doSomething()

    Le dosomething ici ne sera appelé que lorsque vous exécuterez ce fichier directement dans le terminal, et ne sera pas appelé lorsque vous l'importerez en tant que package dans d'autres fichiers et exécuterez ce fichier.

    répondre
    0
  • 天蓬老师

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

    Voici comment comprendre si name == 'main' en python :
    https://github.com/pythonpeix...

    répondre
    0
  • PHP中文网

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

    __name__ : Indique le nom du module, de la classe, etc. ;

    __main__ : représente le module, le fichier xxx.py lui-même.

      Lorsque
    • est exécuté directement, le nom du module correspondant est __main__ Vous pouvez ajouter le code souhaité dans if __name__ == “__main__”: pour tester les modules, démontrer l'utilisation du module, etc.

    • En tant que module, lorsqu'il est importé ailleurs, le nom du module est son propre nom de fichier xxx.

    répondre
    0
  • 高洛峰

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

    La fonction a deux fonctions principales : 1. Réutilisation du code. 2. Processus de décomposition. Cela signifie que lorsque vous écrivez d'autres programmes, vous pouvez appeler la fonction que vous écrivez actuellement. Après avoir écrit une fonction, nous devons la tester ou travailler avec elle, puis nous écrivons ce que nous voulons faire dans if __name__=='__main__':. Lorsque vous écrivez un autre programme pour appeler ce module le lendemain, il exécutera la fonction devant if __name__=='__main__':, mais pas le code à l'intérieur de if __name__=='__main__':.

    répondre
    0
  • Annulerrépondre