实参,形参
list 改变函数的可变对象参数的值 也许会对调用者有影响
不可变对象“传值”:数值、字符串
可变对象“指针”:列表、字典
实参,形参
list 改变函数的可变对象参数的值 也许会对调用者有影响
不可变对象“传值”:数值、字符串
可变对象“指针”:列表、字典
Python的函数-参数
• 参数简介
• 参数传递
• 特定的参数匹配模型
• 特殊参数的传递
• 模拟Python3.x的print函数
参数简介
参数:argement 或parameter,对象作为输入值传递给函数的方式。
参数传递时的简要关键点:
• 参数的传递是通过自动将对象赋值给本地变量名来实现。
• 在函数内部的参数名的赋值不会影响调用者。
• 改变函数的可变对象参数的值也许会对调用者有影响。
传递参数为可变对象与不可变对象时:
不可变对象“通过值”进行传递 - 数值、字符串等。
可变对象是通过“指针”进行传递 - 列表、字典等。
参数传递是有特定匹配规则的:
• 位置:从左到右
• 关键字参数:通过参数名进行匹配
• 默认参数:为没有传入值的参数定义参数值
• 可变参数:收集任意多基于位置或关键字的参数 - 参数以*或**开头
• 可变参数解包:传递任意多的基于位置或关键字的参数 - 传递值以*或**开头
• Keyword-only参数:参数必须按照名称传递(Python3.x)
注:传递参数时,请注意顺序: 非关键字参数->关键字参数->字典参数
参数:argement或parameter,对象作为输入值传递给函数的方式。不可变对象“通过值”进行传递——数值、字符串等;可变对象是通过“指针”进行传递——列表、字典等。
参数传递——避免可变参数的修改:b[:]方式会生成一个列表对象
参数传递——输出对象方法:可以使用return来进行参数的输出
注:传递参数时,请注意顺序:非关键字参数>关键字参数>字典参数
特定的参数匹配模型——常规参数函数:当调用常规参数函数时,可以使用常规参数调用、关键字参数调用、迭代调用与字典调用。
可变参数函数:可以传递任意个参数(包涵0个),*args方法是把所有常规参数调用与迭代调用放进一个元祖里;**args方式是把任意个关键字参数与字典调用方式存放在变量名为args的字典里。