Python 有没有一种传递论点的有效方法?

Python 有没有一种传递论点的有效方法?,python,argument-passing,Python,Argument Passing,除了在参数列表中四次写入“codec”之外,还有其他方法吗 codec = 'XVID' fourcc = cv.CV_FOURCC(codec[0], codec[1], codec[2], codec[3]) 当我这样做时,参数只有一个,因为“,”.join(ls)的结果是一个字符串。有没有一种方法可以传递四个参数而不必执行上面示例中的操作 codec = 'XVID' ls = list(codec) fourcc = cv.CV_FOURCC(','.join(ls)) 使用*arg

除了在参数列表中四次写入“codec”之外,还有其他方法吗

codec = 'XVID'
fourcc = cv.CV_FOURCC(codec[0], codec[1], codec[2], codec[3])
当我这样做时,参数只有一个,因为“,”.join(ls)的结果是一个字符串。有没有一种方法可以传递四个参数而不必执行上面示例中的操作

codec = 'XVID'
ls = list(codec)
fourcc = cv.CV_FOURCC(','.join(ls))

使用
*args
参数解包:

cv.CV_FOURCC(*codec)
使用
*
前缀传递的任何iterable都被解包为单独的参数;字符串也是一个iterable,会产生
len(string)
参数,每个参数都是一个字符:

>>> codec = 'XVID'
>>> def demo(arg1, arg2, arg3, arg4):
...     print arg1, arg2, arg3, arg4
... 
>>> demo(*codec)
X V I D

您可以使用
**
将参数视为关键字参数的映射(每个键值对都成为参数),函数签名中的相同语法允许您分别将变量参数捕获为元组或映射。请参阅使用参数解包:

cv.CV_FOURCC(*codec)
使用
*
前缀传递的任何iterable都被解包为单独的参数;字符串也是一个iterable,会产生
len(string)
参数,每个参数都是一个字符:

>>> codec = 'XVID'
>>> def demo(arg1, arg2, arg3, arg4):
...     print arg1, arg2, arg3, arg4
... 
>>> demo(*codec)
X V I D
您可以使用
**
将参数视为关键字参数的映射(每个键值对都成为参数),函数签名中的相同语法允许您分别将变量参数捕获为元组或映射。看