下代码的代码if __name__ == '__main__':
会仅仅如果将模块作为脚本引用,则执行该模块。
例如,考虑以下模块my_test_module.py
:
# my_test_module.py
print('This is going to be printed out, no matter what')
if __name__ == '__main__':
print('This is going to be printed out, only if user invokes the module as a script')
第一种可能性:进口my_test_module.py
在另一个模块中
# main.py
import my_test_module
if __name__ == '__main__':
print('Hello from main.py')
如果你现在祈祷main.py
:
python main.py
>> 'This is going to be printed out, no matter what'
>> 'Hello from main.py'
请注意,只有最高层print()
语中的语中my_test_module
执行。
第二种可能性:my_test_module.py
作为脚本
现在,如果你现在跑my_test_module.py
作为 Python 脚本, 两者print()
将执行语句:
python my_test_module.py
>>> 'This is going to be printed out, no matter what'
>>> 'This is going to be printed out, only if user invokes the module as a script'
更全面的解释,可读作:什么是什么东西if __name__ == '__main__'
在 Python 中做.