1.参数传递
在python里,变量只是一个指针,储存对象的地址。且变量有可变与不可变之分。可变类型参数在进行传递时,函数外部的值会跟着内部改变而改变。而不可变类型在函数类型修改时不会影响外部变量。python中一切都是对象,一般在python不说值传递与引用传递,而说不可变类型和可变类型。(参数传递的类型:可变类型和不可变类型)
(1)可变类型
- python可变类型只包含两个:列表(List)和字典(dict)。
若在函数体内部使用切片的方式进行修改,则会影响外部对象的值。若直接进行整体赋
值,那也不会影响外部的变量,只有在使用切片修改时才会。
点击查看代码
"""
采用切片的方式在函数内部修改变量a的值,外部对象也跟着变化
"""
a = [100,1]
def change(a):
a[1] = 200
a[0] = 2
print(a)
return
change(a)
print(a)
点击查看代码
"""
采用整体的方式,内部修改不影响外部,这时候与不可变类型。
"""
a = [100,1]
def change(a):
a = [200,2]
print(a)
return
change(a)
print(a)
(2)不可变类型
python的不可变类型有:元组、字符串和数值为不可变类型。函数内部的任何修改都不会影响外部对象的值。
2. 参数类型
在参数传递时的类型可分为两种类型,在函数内部进行参数调用的时候又可以按照形式分为4种类型。
(1)必须参数:必须输入,否则函数会出错。
(2)默认值参数:在函数定义时采用等号对参数进行赋初始值,如果该参数没有被传参,则使用默认值。
(3)关键字参数:在函数传参的时候采用函数中形参的关键字进行赋值,成为关键字参数
(4)不定长参数:不定长参数在不确定输入参数长度时使用,对参数使用星号来表示(具体待使用时学习)def fun(arg1,*var_arg)
3. 匿名函数
匿名函数只有一行表达式,函数名采用等号赋值,形式为:func_name = lambda x1,x2,...,xn: f(x1,x2,...xn)
点击查看代码
x1 = 100
fun = lambda x:x+5
print(fun(x1),fun(100))
浙公网安备 33010602011771号