Python 3 구문에 대한 pylint 이진 테스트에서 코드는 Python 2에만 유효합니다. Pylint는 파이썬 바이너리의 구문에 따라 코드를 테스트한다 (파이썬의 자체 파서를 사용한다).
파이썬 3에서는 사용하십시오 : 당신의 구문 파이썬 2 올바른 수 있지만
raise Exception().with_traceback(sys.exc_info()[2])
파이썬 3에 대한
을 raise
statement 설명서를 참조하십시오, 당신은 기술적으로 잘못된 raise
를 사용하는 . 3 요소를 전달할 때 첫 번째 요소는 인스턴스가 아닌 클래스이어야합니다. 두 번째는 그 클래스의 인스턴스이며, 세 번째 역 추적 :
raise Exception, Exception(), sys.exc_info()[2]
또는 당신이 첫 번째 (클래스)에 전달 빈 인수 목록 None
에 전달할 수 있습니다 인스턴스를 만들 :
raise Exception, None, sys.exc_info()[2]
을
코드는 여전히 작동하지만, 파이썬이 너무 엄격하지 않고 클래스가 아닌 경우 첫 번째 인수를 인스턴스로 사용하기 때문에 코드가 작동합니다.
파이썬 2 코드를 pylint로 테스트하려면 파이썬 2 바이너리에 복사본을 설치하고 해당 버전을 실행하십시오. Specify which python version pylint should evaluate for
python3으로 필립트를 어떻게 설치했는지 완전히 잊어 버렸습니다. 감사합니다! 'raise' 사용에 관해서는 내 컴퓨터의 문서에 명시 적으로 다음과 같이 명시되어 있습니다. 첫 번째 객체가 인스턴스 인 경우 예외의 유형이 인스턴스의 클래스이고 인스턴스 자체가 값이고 두 번째 객체는 "없음". " 이 문제가 버전간에 변경 되었습니까? – goncalopp