函数的参数
函数的参数
形参
在函数定义阶段,函数名括号内的参数,称之为形式参数,简称形参,本质就是变量名。
# 函数定义阶段函数名括号内的 x,y 就是形参,是用来接收实参的
def foo(x,y):
print(x,y)
实参
在函数调用阶段,函数名括号内的参数,称之为实际参数,简称实参,本质就是变量值。
def foo(x,y):
print(x,y)
foo(13,14)
# 函数调用阶段函数名括号内的 13,14 就是实参,用来传值给形参
位置参数
- 位置形参
在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参。
def func(x,y,z):
print(x)
print(y)
print(z)
# 特点:按照位置定义的形参都必须被传值,多一个不行,少一个也不行。
- 位置实参
在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参。
def func(x,y,z):
print(x) # 13
print(y) # 14
print(z) # 5
func(13,14,5)
# 特点:按照位置一一对应形参,为其传值。
默认形参
在定义阶段就已经被赋值的形参,称之为默认形参。
def func(x,y,z=5):
print(x)
print(y)
print(z)
func(13,14)
# 特点:在定义阶段就已经被赋值,调用时可以不用为其赋值。
注意:1. 位置形参必须放在默认形参的左边,也就是前面。
2. 默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定了。
m = 9
def foo(x=m):
print(x)
m = 10
foo() # 9
关键字实参
在调用函数时,按照 key = value的形式指名道姓为指定的形参传值,称之为关键字实参。
def func(x,y):
print(x,y) # 13 14
func(y=14,x=13)
# 特点:可以打破位置的限制,但仍能为指定的形参赋值。
注意:1. 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
2. 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
def func(x,y):
print(x,y)
func(13,y=14,x=16) # 报错,不能对同一个形参重复赋值。
千里之行,始于足下。