def
req(self,
b=None),是因为这个函数是一个封装函数,在没有调用他的时候他的参数需要加上None。如果不加None值,不调用函数他会报错。
一般会用在封装类或者框架里。比如说框架一般会有一个总的调用函数,总的调用函数启动,这次没有获取到值,执行到req函数时无法给req函数参数,那如果没有参数req函数就会报错。一般会报:‘req()
missing
1
required
positional
argument:
'b'’但是如果参数为None就不会报错。如果程序执行到req参数传递成功的话,参数就不会是None了。
所以None是一个防止报错的机制。
在python语言中,对于none需要记住以下几点:
1.None是一个特殊的常量。
2.None和False不同。
3.None不是0。
4.None不是空字符串。
5.None和任何其他的数据类型比较永远返回False。
6.None有自己的数据类型NoneType。你可以将None复制给任何变量,但是你不能创建其他NoneType对象。
7.python中的None就相较于Java中的Null。python中就没有所谓的NULL。
python中None代表一个特殊的空值,即为一个空对象,没有任何的值。
一般用于assert,判断,函数无返回时的默认,具体如下:
assert断言:
mylist = ['a', 'b', 'c']
>>>assert len(mylist) is not None # 用assert判断列表不为空,正确无返回
>>>assert len(mylist) is None # 用assert判断列表为空
if...else...
a = Noneif a:
print "a is not None"
else:
print "a is None"
3.如果函数无return,则默认返回None
def add1(a,b):return a+b
a1=add1(1,2)
print a1
#会输出3,因为有return,则有返回值
def add2(a,b):
print a+b
a2 = add2(1,2)
print a2
#会输出None,因为没有return,则add2为None