接口测试基础——第7篇 Python中_、__、__func__之间的区别

今天的东西很少,主要是给自己做个笔记,顺便帮大家普及一下Python中的边角知识:

1、if __name__ == "__main__"是什么意思

答:一个.py文件,如果是自身在运行,那么他的__name__值就是"__main__";
如果它是被别的程序导入的(作为一个模块),比如:
import unittest
那么,他的__name__就不是"__main__"了。
所以,在.py文件中使用这个条件语句,可以使这个条件语句块中的命令只在它独立运行时才执行。
----来自百度问答

2、python中_param,__param,__param__的区别

答:_ 表示该方法或属性是私有的,也就是说你不想让别人编辑,那么就可以把变量设置成为 “_变量名”

__来避免子类的重写;

例如:

 

class A(object): 
    def __method(self): 
        print "I'm a method in A" 
    def method(self): 
        self.__method()
a = A()
print a.method()


输出是这样的:
I'm a method in A

我们给A添加一个子类,并重新实现一个__method:

 

class A(object): 
    def __method(self): 
        print "I'm a method in A" 
    def method(self): 
        self.__method()

class B(A): 
    def __method(self): 
        print "I'm a method in B" 

b = B() 
print b.method()


现在,结果是这样的:
I'm a method in A

就像我们看到的一样,B.method()不能调用B.__method的方法。实际上,它是"__"两个下划线的功能的正常显示。
因此,在我们创建一个以"__"两个下划线开始的方法时,这意味着这个方法不能被重写,它只允许在该类的内部中使用。

__XX__用于python调用或一些特殊情况

当你看到"__func__"的时,就知道不要调用它。为什么?因为它的意思是它是用于Python调用的,如下:

 

name = "param"
print name.__len__()
number = 10
print number.__add__(20)

 

输出为:

5
30
“xx”经常是操作符或本地函数调用的magic methods。

        原文链接:http://www.cnblogs.com/coder2012/p/4423356.html

 

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

posted @ 2017-10-26 09:41  孟船长  阅读(2749)  评论(0编辑  收藏  举报