*args 和 **kwargs 经常看到,但是一脸懵逼 ,今天终于有收获了
""" python 函数的入参经常能看到这样一种情况 *args 或者是 **kwargs 但是它们到底是啥意思呢? 代码能说明一切 """ def hello(*args, **kwargs): print(args) # (‘小明‘, 25, ‘男‘, ‘中国银行‘) print(kwargs) # {} hello(‘小明‘, 25, ‘男‘, ‘中国银行‘) print(‘*‘ * 50) def hello(*args, **kwargs): print(args) # () print(kwargs) # {‘name‘: ‘小明‘, ‘age‘: 25, ‘gender‘: ‘男‘, ‘company‘: ‘中国银行‘} hello(name=‘小明‘, age=25, gender=‘男‘, company=‘中国银行‘) print(‘*‘ * 50) def hello(name, *args, **kwargs): ‘‘‘ 将第一个入参映射到name头上去了 :param name: :param args: :param kwargs: :return: ‘‘‘ print(name) # 小光 print(args) # (40, ‘男‘, ‘中国银行‘) print(kwargs) # {} hello(‘小光‘, 40, ‘男‘, ‘中国银行‘) print(‘*‘ * 50) def hello(name, *args, **kwargs): ‘‘‘ 将第一个入参映射到name头上去了 ‘‘‘ print(name) # 小光 print(args) # (40, ‘男‘, ‘中国银行‘) print(kwargs) # {} hello(name=‘小光‘, 40, ‘男‘, ‘中国银行‘) # 这样编译都不会通过 print(‘*‘ * 50) def hello(name, *args, **kwargs): ‘‘‘ 将第一个入参映射到name头上去了 ‘‘‘ print(name) # 小光 print(args) # () print(kwargs) # {‘age‘: 40, ‘gender‘: ‘男‘, ‘company‘: ‘中国银行‘} hello(name=‘小光‘, age = 40, gender= ‘男‘, company = ‘中国银行‘) # 要搞就只能这样搞
至于 ,如何灵活的使用,还有待于工作中的摸索.....
原文地址:https://www.cnblogs.com/z-qinfeng/p/12037676.html
时间: 2024-10-12 08:29:22