美文网首页ITS·黑客
Python学习笔记(三)

Python学习笔记(三)

作者: 木凛 | 来源:发表于2017-04-04 17:05 被阅读0次

1)默认参数power(x, n=2):,这样,当我们调用power(5)时,相当于调用power(5, 2)。只有与默认参数不符的才需要提供额外的信息power(5,3)

2)Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了,用none实现不变

if L is None:

L = []

3)定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号

4)*nums表示把nums这个list的所有元素作为可变参数传进去

5)**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数

6)命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数

6.1)如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了

6.2)*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。

7)使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。

7.1)针对尾递归优化的语言可以通过尾递归防止栈溢出。尾递归事实上和循环是等价的,没有循环语句的编程语言只能通过尾递归实现循环。

相关文章

网友评论

    本文标题:Python学习笔记(三)

    本文链接:https://www.haomeiwen.com/subject/syczottx.html