2017-04-25 7 views
2

2to3을 사용하여 스크립트를 변환하고 있습니다. 내가 할 수있는 유일한 경고입니다 : 원래 스크립트의Python 2to3 경고 <operator.mul (None) '을 사용해야합니다.'여기.> 의미는 무엇입니까?

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

라인 (716)은 : 나는 operator.mul(None)을 사용하여야한다 어디하지 않는

classes = repeat(None) 

. repeat() (link to docs)의 참조 문서는 어떤 문제없이 None을 전달할 수 있음을 보여줍니다. 그래서, 나는 무엇을해야합니까?

답변

2

2to3은 단지 repeat을 의미하는 것으로 혼란스러워하고 있습니다. 그것은 당신이 파이썬 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을 사용하여 경고를 피하거나 무시할 수 있습니다.

+0

예! 실제로 itertools.repeat()를 사용하고 있습니다. 이제 분명히 감사합니다! –