为什么 Python 说“'int' 对象不可调用”?

Why Python says "'int' object is not callable"?

我正在尝试执行我的代码,我的解释器这样说。我的错误在哪里?

import cv2
videoCapture = cv2.VideoCapture('opal.avi')
fps = videoCapture.get(cv2.CAP_PROP_FPS)
size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
videoW = (cv2.VideoWriter('opal2.avi',
    cv2.CAP_PROP_FOURCC('I', '4', '2', '0'), fps, size))
success, frame = videoCapture.read()
while success:  # Loop until there are no more frames.
    videoW.write(frame)
    success, frame = videoCapture.read()

这样的错误通常是由于这种类型的行造成的:

success, frame = videoCapture.read()

这一行非常类似于:

aRet = videoCapture.read()
success = aRet[0]
frame = aRet[1]

如果 videoCapture.read() return 是一个整数,那么行:

success = aRet[0]

变成对 int 的迭代,这是不可能的,所以你的错误。

所以在这样做之前,请检查您的 return 值是列表类型...

行 cv2.CAP_PROP_FOURCC('I', '4', '2', '0') 将产生错误。

CAP_PROP_FOURCC是一个常量,即一个int。

你不能调用 int

3("hello") => impossible "int" object is not callable