Discuss / Python / 关于《if __name__ == '__main__':解释》的补充

关于《if __name__ == '__main__':解释》的补充

Topic source

ywjco_567

#1 Created at ... [Delete] [Delete and Lock User]

官方说法:

模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py 。在一个模块内部,模块名(作为一个字符串)可以通过全局变量__name__ 的值获得。

https://docs.python.org/zh-cn/3/tutorial/modules.html?highlight=__name__#modules

# !/usr/bin/python3
# -*-coding:UTF-8-*-
# FileName: Hello.py

def f(txt=None):
    if txt == None:
        txt = ''
    print(f'Hello {txt}!')
    print(f"__name__ == '{__name__}'")

if __name__ == '__main__':
    f()

# !/usr/bin/python3
# -*-coding:UTF-8-*-
# FileName: Helloworld.py

import Hello

Hello.f('world')

第一个文件用于显示“__name__”变量;第二个文件只是引用执行。

分别执行上面两个文件,就能看到差别

运行结果:

D:\Python37\python.exe D:/Python37/Code/Hello.py

Hello !

__name__ == '__main__'

*********************************************************

D:\Python37\python.exe D:/Python37/Code/Helloworld.py

Hello world!

__name__ == 'Hello'


  • 1

Reply