关于python的if __name__ == "__main__":

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于python的if __name__ == "__main__":相关的知识,希望对你有一定的参考价值。

学习东西真的需要自己动手,然后遇到问题,自己学着去解决。当然如果能得到高人指点,那真是走了八辈子运了。可以节省很多时间。但是大多数情况下,不能总是有高人来指点我们。这时就需要靠我们自己了。

在学习python 的关于对象编程的时候,就解决了一个以前很久没有解决的问题。之前也 一直在查资料,但是看来看去,自己没有真实的体会 ,还真是很难感觉到他的作用。

问题就是很多python程序里面都有这句话:if __name__ == "__main__":

其实当你写一个小程序的时候,这句话根本有没什么作用,所以有时候我们摸不着头脑,我写这句话到底干嘛啊。所以慢慢的学着学着,你开始写了两个文件的程序,一个文件调用另一个文件中的模块,这样可以节省我们的开发时间,就像这样:

import class_study  #从其他文件中导入基类

class people_1(class_study.man):

    def __init__(self,name,age1):
        class_study.man.__init__(self,name)   #注意引用的格式
        self.name = name
        self.age1 = age1

tom = people_1(tom,23)
print tom.gender,tom.name,tom.age1

这段代码,我 引用了class_study文件里面的man类,然后继承他,写完之后,我只想输出他的gender和name,age1,但是我发现怎么给我输出了这么一大坨东东。。。

技术分享

然而红色框框里面才是我想要的输出,那么前面的输出是什么,感觉怎么这么熟悉呢。原来上面的输出是我在class_study文件里面的实验输出,在这里我不想输出,那么怎么办呢?

这个时候就体现了【if __name__ == "__main__":】的作用。

他的意思就是说,当你单独运行这个程序的时候,执行这句话下面的语句,当然,这句话上面的语句也会被执行,但是当其他文件引用本模块 的时候,这句话下面的语句就不会被执行了。只要 上面的功能模块。

改好之后是这个样子的:

技术分享

可以看到上面的那一坨没有输出了。yes!!!

  

以上是关于关于python的if __name__ == "__main__":的主要内容,如果未能解决你的问题,请参考以下文章

扫盲贴000---关于python中的if __name__ == '__main__'

关于python的if __name__ == "__main__":

Python中的构造“ if __name__ == '__main__'”

关于if __name__ == '__main__'的理解

关于__name__和__main__

python3----如何简单地理解Python中的if __name__ == '__main__'