Python __name__的问题

来源:互联网 发布:淘宝优惠卷是真的假的 编辑:程序博客网 时间:2024/06/08 13:33

前几天看教程提到if __name__ == "__main__"的问题,当时就听的一知半解,今天试着自己写了段代码熟悉一下,结果一直不能得到预期的结果:

代码如下:

#!/usr/bin/python#coding:utf-8#filename:myMoudle.py#自己定义一个模块,包含两个函数。 def printHello():    print 'Hello'    print len('abc')     def sayHi():    print 'say hi to everyone!' printHello()sayHi()
</pre><pre name="code" class="python">
#!/usr/bin/python#coding:utf-8#filename:my__name__.py#导入上一个自定义的模块myMoudle.py import myMoudle as mM print "whatever something"def doSomething():    mM.printHello()
if __name__ == '__main__'    doSomething()

运行结果如下:

>>> Hello3say hi to everyone!whatever somethingHello3>>> 

其实我的预期是只执行doSomething 函数

>>>
<pre name="code" class="python">whatever something
Hello3>>>


改代码如下:

#!/usr/bin/python#coding:utf-8#filename:myMoudle.py#自己定义一个模块,包含两个函数。def printHello():    print 'Hello'    print len('abc')    def sayHi():    print 'say hi to everyone!'if __name__ == "__main__":    printHello()    sayHi()

区别和理解:

当一个.py文件如果只需要调用其中的某些函数或者方法的,在最末端一定要加上

if __name__ == "__main__":

这样别人调用它的时候,这个条件就一直为假,因为__name__ 此是为该.py文件的文件名:myMoudlle,这样它在被调用时就只执行被调用的函数而不会整改都执行。


0 0