7-函数
函数基础
- 定义函数/声明函数
- def f():
- print('hello')
- def f():
- 调用函数
- f()
- 参数
- def f2(x, y):
- 函数的作用
- 封装一个功能(一段代码)
标准函数
- return
- 1.返回结果
- 2.立刻退出函数
- 3.默认返回None
- return如果不接返回值,可以用来中止函数
函数参数
- 实参/形参
- 实参:函数调用时括号中的参数
- 形参:函数定义时括号中的参数
- 参数类型
- 位置参数/必需参数
- 默认参数(定义时)
- def f2(x, y=3):
- 关键字参数(调用时)
- def f3(x, y=3, z=4):
- # z 是关键字参数,给关键字z传参
- f3(10, z=30) # 10 3 30
- def f3(x, y=3, z=4):
- 可变参数/不定长参数
- *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
- def f4(x, y, args):
- print(x, y, args)
- def f4(x, y, args):
- kwargs:(keyword arguments)可以接收任意多个(0~n)关键字参数,得到的值是一个字典
- def f5(x, y, kwargs):
- print(x, y, kwargs)
- def f5(x, y, kwargs):
- 接收任意参数
- def f7(*args, **kwargs):
- print(args, kwargs)
- def f7(*args, **kwargs):
- *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
匿名函数lambda
- f2 = lambda x: x*x
- person_list.sort(key=lambda x: x['age'], reverse = True)
值传递问题
-
值类型:简单的赋值,没有关联
-
引用类型:赋值的同时会有关联,深拷贝解决。
- l1 = [1, 3 ,4 , 2]
- l2 = l1
- l2[0] = 100
- print((l1, l2)) # ([100, 3, 4, 2], [100, 3, 4, 2])
-
函数中参数:值类型和引用类型的区别
-
def f(n, m): # n=a, m=b # pass # 空函数 n += 1 m['age'] += 1 print(n, m) a = 10 b = {'age': 10} f(a, b) # 11 {'age': 11} print(a, b) # 10 {'age': 11}
-