4_函数

1. 参数重载

       1.1 参数重载的第一种情况:默认参数重载,将默认参数放在参数列表的最后,并且一定要保证默认参数指向的是不变对象。下面是指向可变对象和不变对象的例子:

def add_end1(L=[]):
    L.append('end')
    return L

def add_end2(L=None):
    L.append('end')
    return L
    
>>>add_end1()
['end']
>>>add_end1()
['end','end']


>>>add_end2()
['end']
>>>add_end2()
['end']

       1.2 参数重载的第二种情况:可变参数数目重载,在参数前添加一个*号即可:

def calc(*number):
    sum=0
    for n in number:
        sum+=n*n
    return sum
##这样既可以把列表和元组传进去,也可以手动输入多个不确定数目的参数

       1.3 参数重载的第三种情况:关键字参数和命名关键字参数

##二者一般都用于字典中
def person1(name,age,**kw):
    print()

##可变参数后面的命名关键字参数不需要*分隔符
def person2(name,age,*args,city,job):
    print()
    
##命名关键字参数的传入必须要传入参数的名字
def person3(name,age,*,city,job):
    print()

2. Tips

       2.1 函数返回多个值实际上是返回一个元组

       2.2 input()函数默认接受为字符串类型,需要使用强制转换函数

       2.3 range()函数返回的是一个整数可迭代对象,并不是真正意义上的列表类型。默认必须参数为stop。range(start,stop,step),左开右闭

       2.4 不返回值的函数称为过程

       2.5 定义函数时,由于不像C语言那样对参数类型的定义有严格限制,所以如果有必要,需要对参数类型写语句做一个检查,防止出错时编译器不能提供准确的定位。

def my_abs(x):
    if not isinstance(x,(int,float)):           ##类型检查语句
        raise TypeError('bad operand type')
    if(x>0):
        return x
    else:
        return -x

猜你喜欢

转载自www.cnblogs.com/machine-lyc/p/10635841.html