Python中if__name__ ==》《__main____in it__和self的解析
Python中if name == ‘main’,__in it__和self 的解析
if __name__== "__main__"
函数对原函数本身不会产生影响,只是对调用者产生影响。
此函数的具体用法通过下面例子来说明:
没有加函数:if __name__== "__main__"
:
aa11.py
class add():
def __init__(self,a,b):
self.a=a
self.b=b
def bijiao(self):
if self.a>self.b:
return self.a
elif self.a==self.b:
return a+self.b
else :
return self.b
def qiuhe(self):
return self.a+self.b
def xiangjian(self):
return self.a-self.b
my_add = add(5,11)
print my_add.bijiao()
print my_add.qiuhe()
print my_add.xiangjian()
输出结果:
li@ubuntu:~/桌面/python$ python -u "/home/li/桌面/python/aa11.py"
11
16
-6
aa66.py调用aa11.py
from aa11 import add
your_add = add(4,2)
print your_add.bijiao()
输出结果:
li@ubuntu:~/桌面/python$ python -u "/home/li/桌面/python/aa66.py"
11
16
-6
4
此时调用的时候也将被调用的函数中的一起给打印出来了,然而我们有时候不想把他打印出来只调用他。
加函数:if __name__== "__main__"
:
加上函数if __name__== "__main__":
看之后的变化:
aa11.py
class add():
def __init__(self,a,b):
self.a=a
self.b=b
def bijiao(self):
if self.a>self.b:
return self.a
elif self.a==self.b:
return a+self.b
else :
return self.b
def qiuhe(self):
return self.a+self.b
def xiangjian(self):
return self.a-self.b
my_add = add(5,11)
if __name__== "__main__":
print my_add.bijiao()
print my_add.qiuhe()
print my_add.xiangjian()
输出结果:
li@ubuntu:~/桌面/python$ python -u "/home/li/桌面/python/aa11.py"
11
16
-6
本程序在加入if __name__== "__main__":
和没有加上没有区别。
区别在于调用他的文件。看运行下面的文件:
aa66.py
from aa11 import add
your_add = add(4,2)
print your_add.bijiao()
输出结果:
li@ubuntu:~/桌面/python$ python -u "/home/li/桌面/python/aa66.py"
4
此时输出结果有了明显的变化,没有输出调用的哪个函数的值。