- 不像C++、Java等语言一样需要设定函数的返回值,Python中定义函数时,统一用关键字
def
,而参数列表也同样不需要设定参数的数据类型,直接将参数名称传入即可。 - 当某些参数的数目不确定时,可以在参数前加上
*
,让这个参数变成一个参数元组,也就是说,这个参数的“相对位置”传入的所有参数都被封装为一个元组,这样一来,我们便可以通过索引来访问某个参数,例如:
def my_function(*kids):
print("The youngest child is " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")
- 同样,如果我们想向传入一个字典键值对形式的参数,可以在参数的前面加上
**
那么这个参数就是字典形式的参数,传入实参的两种形式如下:
def func(**dic):
pass
func(name = "叶春亭",age = 19) #第一种
diction = {"name" = "叶春亭","age" = 19} #第二种
func(diction)
- 参数默认值的设置:
def my_function(country = "China"):
- 实参有时可以不用遵循参数列表中的形参顺序,如下:
def my_function(child3, child2, child1):
print("The youngest child is " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
- Python中有一个特殊的函数
Lambda
,该函数大多用于一个函数内部,当作一个**“简单迷你”**版的匿名函数,用法为:
lambda arguments : expression
#例如
f = lambda a : a + 10
print(f(5))
其中f
为这个Lambda
函数,第一个a为形参,冒号后面的一句表达式为传入参数进行简单计算并返回到f
函数中。
当用于某个函数中作为匿名函数时:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)(11)
print(mydoubler)
上述例子中,如果函数的返回值为一个匿名Lambda
函数,则在调用这个函数时,需要传入这个匿名函数的参数列表,第一个括号为函数本身的参数列表,第二个括号才是返回的匿名函数的参数列表。