第18章 参数
写在开头的读者笔记
值得一读的小节
传递参数
参数和共享引用
避免可变参数的修改
(读者笔记:如果不想改变传入的对象,无论函数是如何调用的,我们同样可以在函数内部进行拷贝。
def changer(a, b):
b = b[:]
a = 2
b[0] = 'spam'
)
对参数输出进行模拟
特定的参数匹配模型
基础知识
匹配语法
细节
(读者:参数顺序)
在调用和函数头部中,如果出现**args形式的话,都必须出现在最后。
Python内部是使用以下的步骤来在赋值前进行参数匹配的:
关键字参数和默认参数的实例
任意参数的实例
收集参数
*:在函数定义中,在元组中收集不匹配的位置参数。
**:只对关键字参数有效。将这些关键字参数传递给一个新的字典,这个字典之后将能够通过一般的字典工具进行处理。
解包参数
别混淆函数头部或函数调用时*/**
的语法:在头部,它意味着收集任意数量的参数,而在调用时,它解包任意数量的参数。
Python 3.0 Keyword-Only参数
min调用
满分
加分点
结论
一个更有用的例子:通用set函数
模拟Python 3.0 print函数
使用Keyword-Only参数
为什么要在意:关键字参数
本章小结
本章习题
习题解答
参考文献:
1.《Python学习手册》。