本文主要是介绍Python3.4里面__name和__main__的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
[b][color=green][size=large]在python的代码里我们经常会看到这样两个片段,__name__和__main__那么代表什么意思呢?在这之前,我们先来了解下python文件的调用方法,主要有两种
1,直接在cmd或shell终端调用xxx.py文件
2,导入别的python文件里做为一个工具类调用
懂了上面这两个方式后,我们在理解这两个属性的作用就好理解了,其实__name__是每个模块或类里面的内置属性,__main__代表直接运行这个py文件时的标记,如果不是__main__那就说明,这个py文件,是导入到别的python代码里,昨晚工具类使用的,下面看散仙写如下的例子:
这个是测试的python文件b.py代码
[/size][/color][/b]
def say():
print("say")
def b():
print("B")
def c():
print("C")
def d():
print("D")
if __name__=="__main__":
print("我是直接运行的")
b();
else:
print("不是直接运行!")
if __name__=="b":
print("导入模块调用了")
else:
print("其他模块")
[b][color=olive][size=large]在cmd下直接运行,打印结果如下:[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0100/8195/f556ec1e-5863-3c38-a7e8-5f003e55e1fb.jpg[/img]
[b][color=olive][size=large]在别的python代码里调用打印如下:[/size][/color][/b]
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/main方法测试/p.py
不是直接运行!
其他模块
Process finished with exit code 0
[b][color=olive][size=large]下面看下如何在python的里面,测试这个区别:[/size][/color][/b]
class Person:
def run(self):
print("我在奔跑!")
def swimming(self):
print("我在游泳")
if __name__=="__main__":
print("Person里条用")
else:
print("oh no person!")
class Model:
def say(self):
print("我是一个model")
def p(self):
print("Model")
if __name__=="__main__":
print("Model里条用")
else:
print("oh no model!")
if __name__ =="__main__":
p=Person();
p.run();
else:
x=Model();
x.say();
[b][color=olive][size=large]打印的效果如下:[/size][/color][/b]
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/main方法测试/p.py
不是直接运行!
其他模块
oh no person!
oh no model!
我是一个model
Process finished with exit code 0
[b][color=green][size=large]通过上面这个例子,我们能够看出来,在一个py文件里的多个类也是可以定义自己的__name__和__main__如果我们没有明确指定是那个类的方法,那么执行这个文件导入模块时,就会把这个py下所有定义的类__name和__main__都执行一遍。[/size][/color][/b]
这篇关于Python3.4里面__name和__main__的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!