python和C++/Java不一样,没有主函数一说,也就是说python语句执行不是从所谓的主函数main开始的。
当运行单个python文件时,如运行a.py,这个时候a的一个属性__name__是__main__。
当调用某个python文件时,如b.py调用a.py,这个时候a的属性__name__是模块名a。
a = 3 def change(): global a a = 10 return a print a, change(), a if __name__ == "__main__": print a, change(), a执行结果是:
3 10 10 10 10 10
从上面的结果可以看出,在执行if后面的语句之前,print a, change(), a已经执行过了,也就是说程序执行并不是从main开始的。