1.普通函数:
(1)特点:必须根据顺序一一对应
(2)传递方式:值传递和引用传递
2.关键字函数:
(1)特点:打破必须一一对应的特点
def myPrint(name, age):
print(name, age)
myPrint(age = 18, name = "ma")
3.默认参数函数:
(1)概念:调用函数时,如果没有传递参数,则使用默认参数
def myPrint(name = "ma", age = 18):
print(name, age)
myprint()
4.不定长函数:
(1)概念:能处理比定义时更多的参数
def func1(name, *arr): #arr实际上是一个元组
print(name)
for x in arr:
print(x)
def func2(**keyarr): #keyarr实际上是一个字典
for x in keyarr:
print(x)
def func3(*arr, **keyarr): #该函数可以接受任意类型的参数
pass #pass表示一个空语句
5.匿名函数:
(1)概念:不使用def这样的语句定义函数,使用lambda来创建匿名函数
(2)特点:
1)lambda只是一个表达式,函数体比def简单
2)lambda的主体是一个表达式,而不是代码块,仅仅只能在表达式中封装简单的逻辑
3)lambda函数有自己的命名空间,且不能访问自由参数列表之外或全局命名空间的参数
4)虽然lambda是一个表达式且看起来只能写一行,但与c和c++的内联函数不同
(3)格式:lambda 参数1, 参数2, ......, 参数n: expression
sum = lambda num1, num2: num1 + num2
print(sum(1, 2))