函数声明
def
开头,后接标识符名称和圆括号
例:比较大小
元数据->
->
常常出现在python函数定义的函数名后面,为函数添加元数据,描述函数的返回类型
# 函数返回类型为int
def add(x, y) -> int:
return x+y
函数调用
函数名(传递参数),例子同上
传递参数
必备参数
参数顺序、数量必须与声明一致
关键字参数
允许参数顺序不一致,python解释器会进行匹配
def printinfo(name, age):
print("Name: ", name)
print("Age ", age)
return
printinfo(50, "miki")
默认参数
参数有默认值
def printinfo(name, age=20):
print("Name: ", name)
print("Age ", age)
return
printinfo(50, "miki")
printinfo("miki")
不定长参数
变量名前加*,存放未命名的参数,以元组形式存放所有未命名的变量参数
def printinfo(arg1, *vartuple):
"打印任何传入的参数"
print("输出: ", arg1)
for var in vartuple:
print(var)
return
printinfo(10)
printinfo(70, 60, 50)
匿名函数
lambda
lambda [arg1 [,arg2,.....argn]]:expression
lambda拥有自己的命名空间,不能访问自有参数列表之外或全局命名空间的参数,主体表达式只能封装有限逻辑
def square(x):
return x**2
print(list(map(square, [1, 2, 3, 4, 5])))
print(list(map(lambda x: x**2, [1, 2, 3, 4, 5])))
bar()()
一般而言,调用一个函数是加一个括号。如果看见括号后还有一个括号,说明第一个bar函数返回了一个函数,如果后面还有括号,说明前面那个也返回了一个函数。以此类推。