Python中如何使用*args和**kwargs实现可变参数?

2026-06-09 14:071阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计413个文字,预计阅读时间需要2分钟。

Python中如何使用*args和**kwargs实现可变参数?

刚开始学习Python,觉得args和kwargs参数很难理解。大致知道args是解包元组,kwargs是解包字典,但只知道这些,不会实际使用这两个参数。

刚开始学习python,觉得args、**kwargs参数很难理解。
大概知道args是解包元组,**kwargs是解包字典,但是仅仅知道这点,还是不会使用这两个参数。

# *args参数的使用
# 计算除第一个参数外所有参数之和
def calculate_sum(*args): # args是一个元组
return sum(args) # 使用内建函数’sum’,它使用元组或数列作为参数,返回元组所有元素的和。

def ignore_first_calculate_sum(a,*iargs): # 第一个参数被常规参数’a’接收,其他参数被’iargs’作为元组接收
required_sum = calculate_sum(*iargs)
print("sum is ", required_sum)

def test_sum():
ignore_first_calculate_sum(1,*(2,3,4,5,6))
'''
用到函数’calculate_sum’,’calculate_sum’需要多个位置参数作为元组传给’args’,
所以在函数’ignore_first_calculate_sum’需要拆元组’iargs’,然后将元素作为位置参数传给’calculate_sum’。
注意,用’*’拆元组
'''def fun(a,**kwargs):
print('a is :',a)
print("We expect kwargs 'b' and 'c' in this function")
print("b is ", kwargs['b'])
print("c is ", kwargs['c'])

def test_kwargs():
fun(1,b=3,c=44)
'''
fun(1, {'b':2, 'c':34}),这样调用会报错:ypeError: fun() takes exactly 1 argument (2 given)
尽管’kwargs’接收键值参数作为一个字典,但你不能传一个字典作为位置参数给’kwargs’
可以这样调用:fun(1, **{'b':2, 'c':34})
在一个字典前使用”**”可以unpack字典,传字典中的数据项作为键值参数。
'''
  • todo


Python中如何使用*args和**kwargs实现可变参数?




标签:用法刚开

本文共计413个文字,预计阅读时间需要2分钟。

Python中如何使用*args和**kwargs实现可变参数?

刚开始学习Python,觉得args和kwargs参数很难理解。大致知道args是解包元组,kwargs是解包字典,但只知道这些,不会实际使用这两个参数。

刚开始学习python,觉得args、**kwargs参数很难理解。
大概知道args是解包元组,**kwargs是解包字典,但是仅仅知道这点,还是不会使用这两个参数。

# *args参数的使用
# 计算除第一个参数外所有参数之和
def calculate_sum(*args): # args是一个元组
return sum(args) # 使用内建函数’sum’,它使用元组或数列作为参数,返回元组所有元素的和。

def ignore_first_calculate_sum(a,*iargs): # 第一个参数被常规参数’a’接收,其他参数被’iargs’作为元组接收
required_sum = calculate_sum(*iargs)
print("sum is ", required_sum)

def test_sum():
ignore_first_calculate_sum(1,*(2,3,4,5,6))
'''
用到函数’calculate_sum’,’calculate_sum’需要多个位置参数作为元组传给’args’,
所以在函数’ignore_first_calculate_sum’需要拆元组’iargs’,然后将元素作为位置参数传给’calculate_sum’。
注意,用’*’拆元组
'''def fun(a,**kwargs):
print('a is :',a)
print("We expect kwargs 'b' and 'c' in this function")
print("b is ", kwargs['b'])
print("c is ", kwargs['c'])

def test_kwargs():
fun(1,b=3,c=44)
'''
fun(1, {'b':2, 'c':34}),这样调用会报错:ypeError: fun() takes exactly 1 argument (2 given)
尽管’kwargs’接收键值参数作为一个字典,但你不能传一个字典作为位置参数给’kwargs’
可以这样调用:fun(1, **{'b':2, 'c':34})
在一个字典前使用”**”可以unpack字典,传字典中的数据项作为键值参数。
'''
  • todo


Python中如何使用*args和**kwargs实现可变参数?




标签:用法刚开