2011-04-06 2 views
3

프로토콜 2 (그리고 파이썬 3에서 위쪽으로)를 사용하여 의미있게 절임 될 수있는 클래스를 개발 중입니다. 이전 프로토콜을 사용하면 버그가 발생합니다. 클래스의 사용자에게 디버깅 통증을 저장하고 싶기 때문에 클래스가 2 미만의 프로토콜로 절편 될 경우 클래스가 즉시 예외를 발생 시키길 원합니다.Python : 최신 프로토콜로만 클래스가 pickle되도록 보장

어떻게하면됩니까?

+0

"" "프로토콜 2를 사용하여 의미있게 절임 될 수 있습니다." "- 이유가 무엇입니까? –

+0

나는'__getnewargs__'를 사용하고 있습니다. –

답변

2

클래스에 __reduce_ex__() 메서드를 구현할 수 있습니다. 프로토콜 버전 인 하나의 매개 변수를받습니다. 버전이 2가 아니면 예외를 발생 시키십시오.

+0

흥미 롭습니다. 내가 사용하고있는'__getnewargs__'의 작동에 방해가 될 것이라고 생각합니까? –

+0

방해하지 않는 것 같습니다. –

관련 문제