在Python中,参数传递的方式主要基于对象的引用。以下是Python参数传递的几个特点:
对象引用传递
Python中所有数据类型都是对象,参数传递时实际上是传递对象的引用,而不是值。
对于不可变对象(如数字、字符串、元组),函数内部对其的修改不会影响原对象。
对于可变对象(如列表、字典、集合),函数内部对其的修改会影响原对象。
参数默认值
函数参数可以在定义时设置默认值,如果调用函数时没有为该参数提供值,则使用默认值。
位置参数和关键字参数
位置参数必须按照函数定义的顺序传递。
关键字参数可以任意顺序传递,并且可以使用关键字来指定参数值。
不定参数
使用`*args`可以接收任意数量的位置参数。
使用` kwargs`可以接收任意数量的关键字参数。
参数传递示例
def func(d):
d['a'] = 10
d['b'] = 20
d = {'a': 1, 'b': 2} 这是一个新的字典对象
print(d) 输出:{'a': 1, 'b': 2}
d = {}
func(d)
print(d) 输出:{'a': 10, 'b': 20}
在上面的例子中,`d`在函数`func`内部被重新赋值为一个新的字典对象,这个改变不会影响函数外部的`d`变量。
理解这些参数传递的规则可以帮助你编写更加高效和灵活的Python代码。