廖雪峰pyhon课
【廖雪峰的python教程有一点地方没看明白,求指导】
题主贴了两遍函数,似乎是一样的,下面就分析这一个版本:
def?add_end(L=None):
????if?L?is?None:
????????L?=?[]
????L.append('END')
????return?L
不明白题主说的“一直往里面加END”是怎么回事。函数里既没有循环也没有递归,怎么会“一直”加。。。
关于默认参数,其作用是:使?add_end()的返回值与?add_end(None)的返回值相同。因此下面不再单独分析输入0个参数的情形。
“return的L是全局变量,而传入的参数L是局部变量”这个说法很奇怪。当传入的L是None时,该函数的会新生成一个list,向其中加入一个字符串‘END’,并返回这个新生成的list。而当传入的L是一个list,哪怕是空list时,该函数的作用是向传入的这个L新加一个元素'END',并返回传入的那个L。
L.append('END')这一行,如果缩进的话:当函数传入的L不是None时,就不会向传入的这个L新加一个元素'END'。因此缩进与不缩进的效果是不一样的。
廖雪峰pyhon课相关文章: