目录
- 例1:*args
- 例2:args名称改为其它名称
- 例3:*args 中的 args 接收的参数是一个元组数据类型
- 例4:一般位置参数和*args同时使用
- 例4:同时使用*args和**kwargs参数
例1:*args
def addition(*args):
result = 0
for arg in args:
result += arg
return result
if __name__ == "__main__":
sum = addition(2, 5, 1, 9)
print(sum) # 17
sum = addition(5)
print(sum) # 5
sum = addition(5, 4, 0.5, 1.5, 9, 2)
print(sum) # 22.0
例2:args名称改为其它名称
*args 您可以提供任何名称,而不是 args,就像函数定义中的任何其他参数一样。
参数名称前的星号 (*) 是重要的部分。*args 这个参数将接受可变数量的参数。
*args 功能称为解包运算符/拆包
def addition(*numbers):
"""
:param numbers: 参数名称可以不是*args
:return:result
"""
result = 0
for number in numbers:
result += number
return result
if __name__ == "__main__":
sum = addition(2, 5, 1, 9)
print(sum) # 17
例3:*args 中的 args 接收的参数是一个元组数据类型
def addition(*numbers):
"""
*numbers,作用是解包、拆包
:param numbers: 可接收一组元组数据类型
:return:
"""
print(type(numbers))
if __name__ == "__main__":
addition(2, 5, 1, 9) #
例4:一般位置参数和*args同时使用
def calculator(operation, *numbers):
"""
同时使用,普通参数和*args不定长位置参数
:param operation: 普通参数
:param numbers: 不定长位置参数
:return:
"""
if operation == "add":
result = 0
for num in numbers:
result += num
return result
if operation == "product":
result = 1
for num in numbers:
result *= num
return result
if __name__ == "__main__":
x = calculator("add", 2, 5, 1, 9)
print(x) # 17
x = calculator("product", 3, 5, 2)
print(x) # 30
例4:同时使用*args和**kwargs参数
def myFunction(*args, **kwargs):
"""
:param args: 接收不定长位置位置(或元组)
:param kwargs: 接收关键字参数或字典
:return:
"""
print(args)
print(kwargs)
if __name__ == "__main__":
myFunction("hello", "mars", a = 24, b = 87, c = 3, d = 46)
"""程序运行结果:
('hello', 'mars')
{'a': 24, 'b': 87, 'c': 3, 'd': 46}
"""