# 定义函数的时候: # 位置参数 : 直接定义参数 # 默认参数,关键字参数 :参数名 = '默认的值' # 动态参数 : 可以接受任意多个参数 # 参数名之前加*,习惯参数名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: 是字符串或者列表的长度 # '''