今天在看Python的函数调用
感觉还有点像面向对象的那种意思,
def my_abs(x):
if x>=0:
return x
else:
return -x
将my_abs()保存为abstest.py文件,则可以使用
from abstest import my_abs来导入这个函数my_abs(),这个和
selenium自动化模块导入python差不多,也很符合面向对象的调用模块中的函数。
定义函数时可以使用默认参数:
默认参数必须指向不变对象
def add_end(L=[ ]):
L.append('END')
return L
add_end([1,2,3])------------->[1,2,3,'END']
add_end()------------------->['END']
再次调用函数时出错:
add_end()------------------->['END','END']
add_end()------------------->['END','END','END']
原因如下:
Python函数在定义的时候,默认参数L的值就被计算出来,即【】。因为默认参数L也是一个变量,指向对象[]的指针,每次调用该函数,如果改变看L 的内容,即指向的内容的值,则下次调用时默认参数的内容就变了,不再是函数定义时的【】了
所以应该定义时将默认参数指向为不变对象:
def add_end(L=None):
if L is None:
L = []
L append('END')
return L