Python中if__name__ ==》《__main____init__和self的解析

Python中if__name__ ==》《__main____in it__和self的解析

Python中if name == ‘main’,__in it__和self 的解析

小甲鱼Python零基础

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

此时输出结果有了明显的变化,没有输出调用的哪个函数的值。

你可能感兴趣的:(python)