__reduce__와 __reduce_ex__의 차이점은 무엇입니까?
문제
나는 이러한 방법이 산세/비세척을 위한 것이며 내장 함수 축소와 관련이 없다는 것을 이해합니다. 하지만 두 가지 방법의 차이점은 무엇이며 둘 다 필요한 이유는 무엇입니까?
해결책
문서 그렇게 말해봐
제공되는 경우 산세 시간에
__reduce__()
인수없이 호출되며 문자열이나 튜플을 반환해야합니다.
반면에,
구현할 때 프로토콜 버전을 아는 것이 유용합니다.
__reduce__
.이는 이름이 지정된 메소드를 구현하여 수행 할 수 있습니다__reduce_ex__
대신에__reduce__
.__reduce_ex__
, 그것이 존재하면, 우선 순위가 호출됩니다.__reduce__
(아직도 제공할 수 있습니다.__reduce__
거꾸로 호환성).그만큼__reduce_ex__
메소드는 단일 정수 인수 인 프로토콜 버전으로 호출됩니다.
꼭 쥐고 있는 손에는 귀도 라고 이 부분은 청소할 수 있는 부분이라는 것입니다.
다른 팁
__reduce_ex__
무엇입니다 __reduce__
했지만 결코되지 않았어야 했어. __reduce_ex__
작동합니다 __reduce__
그러나 피클 프로토콜이 전달됩니다.
제휴하지 않습니다 StackOverflow