这个主函数调用的语句常用,但是初学python的时候可能会有点疑惑。简言之就是,当这个python脚本被直接运行的时候,if __name__ == '__main__':以下的部分会被执行;而当该脚本以模块(module)的形式导入时,以下的代码则不会被执行。
如下例直接调用main()作对比:
- main()调用
定义一个greet.py文件,内容为:
greet = 'hello'
def main():
print('hello!')
main()
这个脚本会返回"hello!",如果在另一个文件中导入其中的greet变量:
from greet import greet
def greet2(name):
print(greet + ', ' + name + '!')
greet2('daming')
运行会返回:
hello!
hello, daming!
可以看到导入了greet变量,但是仍然会运行main()这个函数。
- if __name__ == '__main__'
将greet.py修改:
greet = 'hello'
def main():
print('hello!')
if __name__ == '_main_':
main()
运行greet2.py,返回:
hello, daming!
网友评论