一、形参,实参
def 函数名(形参):
主题代码
调用: 函数名(实参)
注:形参可有可无,如果函数定义时没有形参,在调用的时候也不用传实参。
def hello():
print('hello world')
hello()
def add(x, y): # x, y为形参
res = x + y
print(res)
add(1, 2) # 1, 2 为实参
形参变量,只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元
。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
实参变量,可以是常量,变量,表达式,函数等,无论实参是何种类型的变量,在进行函数调用时,他们都
必须有确定的值,一边把这些值传给形参变量,因此应预先给实参赋值
二、位置参数
在函数调用的时候,实参赋值与形参是一一对应的关系,
是按照位置顺序进行赋值操作,这种参数称为位置参数
def student(name, age, sex):
print(name, age, sex)
student('Tom', 13, '男')
student('Jerry', 12, '男')
student('Rex', 13, '男')
三、默认参数
- 在函数定义的时候,就给形参赋上初值,这个形参就称为默认参数
- 在函数调用的时候,默认参数不用赋值,默认是设置的初值
- 如果调用时给默认参数赋值了,则用新的值替代默认值
- 默认参数在定义时一定要在位置参数之后,否则会有语法错误
def student(name, age, sex='男'):
print(name, age, sex)
student('Tom', 13, )
student('Jerry', 12, '女')
student('Rex', 13, '女')
# 结果:
# Tom 13 男
# Jerry 12 女
# Rex 13 女
四、关键参数
- 关键参数是在函数调用的时候,通过以“形参名”=实参 的方式进行赋值操作
- 赋值时,关键参数应放在位置参数之后
- 关键参数的赋值顺序可以不按定义时的形参顺序进行赋值,可以任意调整位置,但前提是一定要在位置参数之后
def student(name, age, sex):
print(name, age, sex)
student('Tom', sex='男', age=50)
# 结果:Tom 50 男
五、不定长参数
- 如果不给不定长参数传参,args默认以元组形式呈现,kwargs以字典形式呈现
def student(name, *args, **kwargs):
print(name, args, kwargs)
student('Tom') # Tom () {}
- 给不定长参数*args传参是以位置参数的方式传进去的,而给不定长参数**kwargs传参是以关键字参数的方式传入的
def student(name, *args, **kwargs):
print(name, args, kwargs)
student('Tom', 'beijing', 'shanghai', age=12, sex='男')
# 结果:Tom ('beijing', 'shanghai') {'age': 12, 'sex': '男'}
位置参数优于关键字参数, *args就是位置参数,因此前面不能有关键字参数
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。