此 __init__() 方法定义中的默认参数值?

Default parameter value in this __init__() method's definition?

我正在查看一些 python 控制相机的代码,但由于在 python 上是新的,所以理解起来有些困难。我看到 src 参数设置为 0。这是否意味着如果未给出 src 将使用 0 否则将使用给定的 src

class WebcamVideoStream:

    def __init__(self, src=0):
        # initialize the video camera stream and read the first frame
        # from the stream
        self.stream = cv2.VideoCapture(src)

所以如果我这样做

vs = WebcamVideoStream(3)

那么 src 会是 3? 如果我这样做

vs = WebcamVideoStream()

那么 src 将是 0?

快速回答是 - 是。

如果你运行:

vs = WebcamVideoStream(3)

src 等于 3

如果你 运行:

vs = WebcamVideoStream()

src 等于 0(默认值)。

作为 Python 的附加功能,Python 支持 *args 和 **kwargs 用于您不确定在您的方法中将使用多少和哪些参数的情况(它是非常笼统的解释,但我希望它是清楚的)。

我在这里发布了一些使用 **kwargs 的例子: http://codepad.org/E7m3PnVr

P.S。

1) 当您不确定可以向您的函数传递多少参数时使用 *args,即它允许您向您的函数传递任意数量的参数。

2) **kwargs 允许你处理你没有预先定义的命名参数