收集参数混合调用的顺序问题
.收集参数,关键字参数,普通参数
.普通参数和关键字参数优先
.定义的时候一般找普通参数,关键字参数,收集参数
def stu(name,age,hobby='NO',*args,**kwargs):
print('Hello,everyone')
print('我叫{0},今年{1}')
if hobby=='NO':
print('我没有爱好')
else:
print('我的爱好是{0}'.format(hobby))
print('*'*20)
for i in args:
print(i)
print('#'*20)
for k,v in kwargs.items():
print(k,'----',v)
收集参数的解包问题
.把参数放入list或者字典中,直接把list字典中的值放入收集参数中
.案例
def stu(*args):
print('----')
n=0
for i in args:
print(type(1))
print(n)
n=n+1
print(i)
stu('liuliu','xiongxiong',19,200)
.下面的做法会直接把list当作一个参数处理
l=list()
l.append('liuliu')
l.append(20)
l.append(230)
stu(l)
.正确的做法是需要进行解包操作,形如下式
stu(*l)
同理,dict类型的收集参数一样可以进行解包但是
.对dict类型进行解包需要用两个星号进行解包
函数的文档
.一般定义在函数内部第一行使用三字符串
.查看文档两种方式:help(name)或name.__doc__
.收集参数,关键字参数,普通参数
.普通参数和关键字参数优先
.定义的时候一般找普通参数,关键字参数,收集参数
def stu(name,age,hobby='NO',*args,**kwargs):
print('Hello,everyone')
print('我叫{0},今年{1}')
if hobby=='NO':
print('我没有爱好')
else:
print('我的爱好是{0}'.format(hobby))
print('*'*20)
for i in args:
print(i)
print('#'*20)
for k,v in kwargs.items():
print(k,'----',v)
收集参数的解包问题
.把参数放入list或者字典中,直接把list字典中的值放入收集参数中
.案例
def stu(*args):
print('----')
n=0
for i in args:
print(type(1))
print(n)
n=n+1
print(i)
stu('liuliu','xiongxiong',19,200)
.下面的做法会直接把list当作一个参数处理
l=list()
l.append('liuliu')
l.append(20)
l.append(230)
stu(l)
.正确的做法是需要进行解包操作,形如下式
stu(*l)
同理,dict类型的收集参数一样可以进行解包但是
.对dict类型进行解包需要用两个星号进行解包
函数的文档
.一般定义在函数内部第一行使用三字符串
.查看文档两种方式:help(name)或name.__doc__