上一篇中,说到了__init__函数的使用,__init__函数是在类中实现,它在创建对象时自动执行,用于初始化对象的属性。今天我们来说一下__name__函数,__name__函数的主要作用为:
1.执行python脚本 2.导入到别的脚本中使用
我们来看看直接打印__name__函数会返回什么?
print(__name__)
控制台输出:
分析:
所以,我们是不是就可以理解为__name__ == __main__,我们继续往下看。
我们通过一些实例来了解:
实例1:
if __name__ == '__main__':
print('我爱python!')
控制台输出:
分析:
咱们给它加入if来作一个判断,程序执行,__name__ 这个变量的值就是 "__main__"。
实例2:
class test_main:
def main(self):
print('hello world!')
def main_2(self):
print('hello python!')
if __name__ == '__main__':
print('我爱python!')
a = test_main()
a.main()
控制台输出:
分析:
在实际项目中,__name__函数主要作为整个项目的执行入口,不想要执行的函数等就可以不调用,上述实例基本上都是在本(.py)文件执行,那么接下来我们来说一下导入到别的(.py)文件里的使用方法。
实例3:
我们新建两个(.py)文件,分别为TEST_1.py和TEST_2.py
EST_1.py
if __name__ == '__main__':
print('我爱python!')
else:
print('被调用!')
print(__name__)
TEST_2.py
import TEST_1
class test_main:
def main(self):
print('hello world!')
def main_2(self):
print('hello python!')
if __name__ == '__main__':
print('我爱python!')
a = test_main()
a.main()
TEST_1
控制台执行TEST_2.py文件输出:
分析:
由此可知,TEST_1.py被import导入到TEST_2.py,则该__name__名字为文件名字,也就是TEST_1,通过if做判断,不等于__main__,则就不会执行后面的方法。
总结:
当 __name__ 值为 "__main__" 的即为脚本,反之,即为导入的模块或者库(方法)。