函数(下)函数的参数
- 函数的参数:
- 位置参数:def func11(
参数
): 其中的参数就是位置参数实例:
# 位置参数 def func11(x,y): # x,y都是位置参数 if not isinstance(x,(int,float)): # 参数类型校验 raise TypeError("x 必须是int/float类型的!") elif not isinstance(y,(int,float)): raise TypeError("y 必须是int/float类型的!") return x * y
- 调用函数不传位置参数会怎样?
- 实例:
- 默认参数:
def func12(x,y=2):
y的默认参数是2,如果不传参数y,y就等于2实例:
# 默认参数 def func12(x,y=2): # x是位置参数,y是默认参数默认值是2 if not isinstance(x,(int,float)): # 参数类型校验 raise TypeError("x 必须是int/float类型的!") elif not isinstance(y,(int,float)): raise TypeError("y 必须是int/float类型的!") return x * y print(func12(3)) # 输出6 ,return 3 * 2 print(func12(3,4)) # 输出12,return 3 * 4 print(func12(3,y=6)) # 输出18 ,return 3 * 6
- 运行结果:
- ps: 定义默认参数要牢记一点:默认参数必须指向不变对象!
- 可变参数:可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
- 语法:
def func13(*list)
*后面跟list/tuple - 实例:
- 语法:
- 关键字参数:关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
- 语法:
def func14(name,**age):
- 实例:
- 语法:
- 命名关键字参数:关键字参数**kw不同,命名关键字参数需要一个特殊分隔符,后面的参数被视为命名关键字参数。
- 语法:
def func15(name,*,age,host):
- 实例:
- 语法:
- 位置参数:def func11(