Python2to3警告<You should use 'operator.mul(None)' here.>什么意思?

Python 2to3 warning <You should use 'operator.mul(None)' here.> What does it mean?

我正在使用 2to3 转换脚本。我得到的唯一警告是:

RefactoringTool: Line 716: You should use 'operator.mul(None)' here.

原脚本第716行是:

classes = repeat(None)

我不知道我应该在哪里使用 operator.mul(None)repeat()(link to docs)的参考文档显示,我可以毫无问题地通过None。那么,我该怎么办?

2to3 对您的意思感到困惑 repeat。它认为您在 Python 2:

中使用 operator.repeat
Help on built-in function repeat in module operator:

repeat(...)
    repeat(a, b) -- Return a * b, where a is a sequence, and b is an integer.

而不是 itertools.repeat。老实说,这不是一个很好的猜测,因为 operator.repeat 需要 2 个参数,但这就是它的猜测。您可以看到 the docs.

中列出的转换

您可以通过使用完全限定 itertools.repeat 或忽略它来避免警告。