1
왜이 인쇄가 거짓입니까?파이썬에서 __instancecheck__ 사용자 정의하기
#! /usr/bin/env python
class A(object):
def __instancecheck__(self,arg):
print self, type(self), arg , type(arg)
if __name__ == '__main__':
a = A()
print isinstance(a,a)
을 제공합니다 :
$ ./isinstancecheck.py
<__main__.A object at 0x7f0574198b90> <class '__main__.A'> <__main__.A object at 0x7f0574198b90> <class '__main__.A'>
False
'인쇄 없음 '은 "없음"을 인쇄합니다. 나는 그것이 여기서 일어나고 있다고 생각하지 않는다. – abc
@abc, 당신은'__instancecheck__'을 직접 호출하지 않습니다. (내부적으로 isinstance라고 부름). '__instancecheck__'의 끝에'return True'를 추가 한 다음'print isinstance (a, ...)'를 시도하십시오. – falsetru
@abc'isinstance'는'__instancecheck__'의 결과를 bool에 강제합니다. – Random832