python基础:*args、**kwargs
# *args、**kwargs都不是关键字,只是一种命名约定。都是可变参数。长度可为0。在调用函数中使用相当于是解包作用
# *args:位置参数。通常是以元组形式传递。
# **kwargs:关键字参数。通常以字典形式传递
# *args和**kwargs同时存在时,args必须在kwargs前面。
def args_fun(nums, *args, **kwargs):
print(f'nums:{nums}')
print(f'*args:{args},类型为:{args.__class__.__name__}')
print(f'**kwargs:{kwargs},类型为:{kwargs.__class__.__name__}')
for n in args:
print(f'args:{n}')
for item in kwargs.items():
print(f'**kwargs:item-->{item}')
def args_pack_unpack(name, age, favorite):
print(f'name:{name},age:{age},favorite:{favorite}')
if __name__ == '__main__':
args_fun(1, 5, 6, 3, 7, 'string', name='tina', age=12)
# 长度可为0
args_fun(3)
# 也可只传递key=value
args_fun(6, age=4)
# 在调用函数中使用时,是解包的作用
args_tuple = ('yuhuifei', 18, 'read')
kwargs_dict = {'name': 'tina', 'age': '100', 'favorite': 'walk'}
args_pack_unpack(*args_tuple)
args_pack_unpack(**kwargs_dict)
本文来自博客园,作者:于慧妃,转载请注明原文链接:https://www.cnblogs.com/fengyudeleishui/p/15853325.html