Python函数的参数类型及其传递方式
发布时间
阅读量:
阅读量
参数传递
参数的传递机制是通过将对象自动分配给函数内部的本地变量名来达成的。当函数执行时,函数定义部分所声明的参数名称属于一个新的、局限于函数作用域内的变量。从本质上看,参数的传递过程等同于 Python 中赋值操作的另一种表现形式。
我们所传递的参数可以划分为不可变类型与可变类型两种类别。
不可变类型: 其行为类似于 C++ 中的值传递方式,例如整数、字符串以及元组等。例如在调用 fun(a) 时,仅将 a 的值进行传递,并不会对原始 a 对象产生任何影响。若在 fun(a) 函数内部对 a 进行修改,则只是针对该复制出的对象进行操作,而不会波及到外部原本的 a。
可变类型: 其特性类似于 C++ 中引用传递的方式,如列表和字典等。例如在调用 fun(la) 时,实际上传递的是 la 对象本身。若在函数内部对 la 进行修改,则外部对应的 la 变量也会随之发生变化。需要指出的是,在 Python 中所有内容皆为对象,严格意义上不能简单地将其归类为值传递或引用传递,更准确的说法应是传递不可变对象与可变对象的过程。
def change(a,b):
a = 2
b[0] = 'hello'
x = 1
L = [1,2,3]
全部评论 (0)
还没有任何评论哟~
