print('Hello World!') print('__name__value: ', __name__) def main(): print('This message is from main function') if __name__ =='__main__': main()
import print_func print("Done!")
print('Hello World!') print('__name__value: ', __name__) def main(): print('This message is from main function') if __name__ =='__main__': main()
import print_func print("Done!")
Hello World!
__name__ value: print_func
Done!
Hello World!
__name__ value: print_module
Done!
Hello World!
__name__ value: __main__
Done!
Hello World!
__name__ value:
Done!
其中if __name__ == '__main__':这句估计很多和我一样的初学者都是不求甚解。
这里作一下解释:
1:__name__是一个变量。前后加了双下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
3:import的时候是要执行所import的模块的。
4:__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。
通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。
1. 如果模块是被导入,__name__的值为模块名字
首先程序从第11行开始执行!!!
import print_func #调用模块依次执行
打印Hello World,
接着打印_name__value: print_func
(此时print_func.py作为模块被调用则 _name__就是他自己的名字)
if __name__ == '__main__': main(
_main__的定义为: 一段程序作为主线运行程序时其内置名称为main
由于这里是被调用的,所以main是print_module.py。if条件不满足跳过,回到主程序中。
打印Done
举个例子,下面在test.py中写入如下代码:
print "I'm the first."
if __name__=="__main__":
print "I'm the second."
并直接执行test.py,结果如下图,可以成功print两行字符串。即,if __name__=="__main__": 语句之前和之后的代码都被执行。