自定义函数

自定义函数的形式如下:
def 函数名称(参数):
函数体
return
 
函数的调用:
函数名称(参数)
 
难点在参数:
1,位置参数,如:
def  add(x,y):
return x+y
add(2,3)
#两个参数的顺序必须一一对应, 少一个多一个都不行。
 
2,关键字参数
使用命名(关键字)来指定函数中的参数。

def func(a, b=5, c=10):
    print('a is', a, 'and b is', b, 'and c is', c)

func(3, 7)
func(25, c=24)
func(c=50, a=100)
输出:

a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50

 
3,默认参数,如:
def add(x,y=10)
return x+y

>>> add(3)
13
>>> add(3,4)
7

注意:必选参数在前,默认参数在后
默认参数为不可变对象
 
3,可变参数,如:
当不确定函数调用的时候会传递多少个参数(不传参也可以),可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。

1、 包裹位置传递
def fc(*args):
    print(arg)
>>> fc(1,2,3)
(1, 2, 3)

注:*args将传入的多个位置参数包裹成一个元组,元祖名为agrs,

2、 包裹关键字传递
def fd(**kwargs):
    print(kwargs)
>>> fd(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3}

注:**args 将传入的多个命名参数包裹成一个字典,字典名为args

4,限定参数形式
def f(a,b=0,/):
    pass
调用函数f(1,b=2)会报错

def f(a,b,*,c,d):
    pass

注:*前面是位置参数,*后面是命名关键字参数
 调用f(1,2,c=3,d=4)这样才可以,且参数数量一个也不能少

5,函数注释
def(a:int,b:'int>0'=10)->int:
    pass
注释参数的类型及返回值的类型,不能限定参数类型。

 

posted @ 2020-10-30 08:13  隐泉  阅读(317)  评论(0编辑  收藏  举报