특정 디버깅 목적으로 임의의 개체에 대해 del 함수를 사용하여 개체의 마지막 값을 파일에 쓰는 등의 추가 작업을 수행하고 싶습니다. 지금은 델 클래스의 방법이라고 생각Monkey patch __del__ to new function
이상적으로 나는 원숭이 (x)의 을 쓰고 싶어 그리고 X는
를 삭제 될 때 x의 최종 값이 인쇄되는 것을 의미한다. 난 단지 내가 동적으로 새로운 자신의 클래스를 다시 작성해야한다고 가정 원숭이 특정 개체에하려는 경우class Test:
def __str__(self):
return "Test"
def p(self):
print(str(self))
def monkey(x):
x.__class__.__del__=p
a=Test()
monkey(a)
del a
! : 그래서 다음은 시작이다 또한 내장 유형에 액세스 할 수 없으므로 어쨌든이 작업을 수행해야합니까?
누구든지 구현 방법을 알고 있습니까?
이 접근법의 두 가지 문제점 : '__class__'를 다시 할당 할 수 없기 때문에 int 나 list와 같은 힙 유형에서는 작동하지 않습니다. 둘째, 유형 검사는 대상이 원숭이인지 아닌지에 따라 결과가 달라집니다. 그러면 매우 혼란스러운 오류가 발생할 수 있습니다. – pillmuncher
__class__에 할당 할 수 있습니까? 와우, 그건 단지 ... 와우. – drxzcl
위의 내 의견에는 오타가 있습니다. '힙이 아닌 형식'을 읽어야합니다. – pillmuncher