effective python读书笔记——数量可变的参数
def show(message,value):
#value用于存放数值信息,若为空则区别对待
if not value:
print("empty")
else:
value_str=','.join(str(x) for x in value)
#join函数:str.join(sequence),返回通过指定字符连接序列中元素后生成的新字符串
#此处用逗号连接()中的每个元素
print(f'{message} : {value_str}')
show('hello',[1,2,3])
show('hello',[])
#但这需要传递空列表,显得多余,而且有点乱
def show_1(message,*value):#带星号的参数可以接受任意数量的值
if not value:
print("empty")
else:
value_str=','.join(str(x) for x in value)
print(f'{message} : {value_str}')
show_1('hi',1,2,3)
show_1('hi')
#如果想以列表的形式传入
a_list=[22,11,33]
show_1('wow',*a_list)
'''
注意:
1,使用此方法时,程序会把这些参数转化为一个元组,然后传给参数
程序必须把生成器中的值迭代完
如果参数过多可能导致耗费大量内存而崩溃
2,当要添加新变量而修改函数时,需要更新函数的操作,避免把需要给新变量的
参数传给了参数可变的*参数
'''
