函数定义
def 函数名():
代码
通过help(函数名)可以查看函数相关说明
函数的参数
1.位置参数
按照对应的位置顺序传参
2.默认参数
当调用函数时为对默认参数传参,则默认参数为定义的默认值**(必须为不变对象,如str、None)**
默认参数降低了函数调用的难度。
当有多个默认参数可以按顺序输入,当不按顺序时需要将参数名写上。
def power(x,n=2,m=3)
#n=2,m=3
power(x)
#n=1,m=4
power(x,1,4)
power(x,m=4,n=1)
3.可变参数
传入的参数的个数是可变的,将list、tuple传入。
**#传统传入list或tuple**
def calc(numbers):
sum=0
for n in numbers:
sum=sum+n
return sum
>>>calc([1,2,3])
>>>calc((1,2,3,4))
**#利用可变参数,只需要在参数前加一个*,如果已有一个list或tuple在之前加一个*传入,
函数内部将接受到一个tuple**
**def calc(*numbers):**
sum=0
for n in numbers:
sum=sum+n
return sum
>>>nums=[1,2,3]
>>>calc(*nums)
>>>calc(1,2,3,4)
4.命名关键字参数、关键字参数
**kw,调用者可以不受限传入任意关键字。
#通过kw检查传入的参数
def person(name,age,**kw):
if 'city' in kw:
pass
if 'job' in kw:
pass
>>>person('Mike',25,city='Wuhan',job='teacher',zipcode=430080)
限制关键字的名字用命名关键字参数,
命名关键字参数用作为分隔,后面的参数被视为命名关键字参数。
若函数中有一个可变参数,则后面跟着的命名关键字参数不需要用作分隔符。
def person(name,age,*,city,job):
>>>person('Mike',25,city='Wuhan',job='teacher')
#命名关键字参数可以有默认值
def person(name,age,*,city=‘Wuhan’,job):
>>>person('Mike',25,job='teacher')
5.参数组合
参数的顺序为:
必选参数、默认参数、可变参数、命名关键字参数、关键字参数
可以通过tuple和dict传参
**所以对于任意函数可以用func(*args,kw)的形式调用。