函数参数

扫码查看
def qqxing(l = []):
    l.append(1)
    print(l)

qqxing()     #[1]
qqxing()     #[1,1]
qqxing()     #[1,1,1]

# 如果默认参数的值是一个可变数据类型,
# 那么每一次调用函数的时候,
# 如果不传值就公用这个数据类型的资源
# 定义函数的时候:
#     位置参数 : 直接定义参数
#     默认参数,关键字参数 :参数名 = '默认的值'
#     动态参数 : 可以接受任意多个参数
#                 参数名之前加*,习惯参数名args,
#                 参数名之前加**,习惯参数名kwargs
#     顺序:位置参数,*args,默认参数,**kwargs

# 动态参数有两种:可以接受任意个参数
    #*args   : 接收的是按照位置传参的值,组织成一个元组
    #**kwargs: 接受的是按照关键字传参的值,组织成一个字典
    #args必须在kwargs之前
# def func(*args,default = 1,**kwargs):
#     print(args,kwargs)

#动态参数的另一种传参方式
def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
     print(args)
func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)  #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

# def func(**kwargs):
#     print(kwargs)
#
# func(a=1,b=2)
# d = {'a':1,'b':2} #定义一个字典d
# func(**d)

# 函数的注释
# def func():
#     '''
#     这个函数实现了什么功能
#     参数1:
#     参数2:
#     :return: 是字符串或者列表的长度
#     '''
12-14 04:43
查看更多