今天的东西很少,主要是给自己做个笔记,顺便帮大家普及一下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
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~