函数的形参
函数的缺省参数
语法:
def 函数名(形参名1=默认实参,形参名2=默认实参2,...):
语句
示例:
def info(name,age=1,address="不详"):
print("我是",name,'我今年:',age,'岁','家庭住址:',address)
info("张飞",30,'中原')
info('金毛',3)
info('柯基')
说明:
缺省参数必须自右至左依次存在
缺省参数可以有0个,1个,多个,甚至全部都有缺省参数
缺省参数的绑定对象存在于函数内,同函数的生命周期一致
示例:
def fn(a,lst=[]):
lst.appen(a)
print(lst)
L=[1,2,3,4]
fn(5,L)
函数的形参定义方式:
1.位置形参
2.星号元组形参
3.命名关键字形参
4.双星号字典形参
位置形参:
def 函数名(形参名1,形参名2,...):
语句块
星号元组形参:
def 函数名(*元组形参名):
语句块
作用: 收集多余的位置传参
命名关键字形参:
def 函数名(*,命名关键字形参):
语句块
def 函数名(*args,命名关键字形参):
语句块
作用:
所有命名关键字形参都强制调用采用关键字传参或字典关键字传参的方式调用
双星号字典形参:
def 函数名(**字典形参名):
语句块
作用:
收集多余的关键字传参
注:
字典形参名通常叫 kwargs
函数参数说明:
位置形参,缺省参数,星号元组形参,命名关键字形参,双星号字典形参可以混合使用
自左至右的顺序为:
1.位置形参
2.星号元组形参
3.命名关键字形参
4.双星号字典形参
可以接受任意位置传参和关键字传参的函数:
def fn(*args,**kwargs):
pass
函数变量
函数名是变量,它是创建时绑定一个函数
实例:
def f1(lst=[]):
print("f1函数被调用")
f1()
f1=None
f1() #出错
f1 绑定None
实例:
def f1():
print("Hello")
def f2():
print("World")
f1,f2=f2,f1
f1() #World
一个函数可以作为另一个函数的参数(实参)传递
示例:
def f1():
print("f1函数被调用")
def f2():
print("f2函数被调用")
def fx(fn):
print("fn绑定的函数是",fn)
函数可以作为另一个函数的返回值:
函数可以返回另一个函数
def get_op():
s = input("请输入您的操作:")
if s == "求最大":
return max
elif s == "求最小":
return min
elif s == "求和":
return sum
L=[2,4,6,8,10]
print(L)
f = get_op()
print(f)
函数嵌套定义:
def 语句的作用是用来创建一个函数
def 语句可以写在函数内部,在函数执行时可以动态创建一个函数
示例:
def get_func(value):
if value == 1:
def myadd(x,y):
retrun x + y
retrun myadd
elif value ==2:
def mysub(x,y):
retrun x - y
retrun mysub
fx = get_func(1)
print(fx(400,300)) #700
fx = get_func(2)
print(fx(400,300)) #100