काम नहीं करता है मैं विंडोज पर पायथन 2.7.3 का उपयोग कर रहा हूं। मैंने क्लास विधि के रूप में __instancecheck__
जादू विधि को ओवरराइड करने का प्रयास किया। लेकिन मैं इसे काम नहीं कर सकता।क्लास विधि __instancecheck__
class Enumeration(int):
@classmethod
def __instancecheck__(cls, inst):
if type(inst) == cls:
return True
if isinstance(inst, int) and inst in range(0,10):
return True
return False
print isinstance(1, Enumeration) # prints False
print isinstance(1, Enumeration()) # prints True
मुझे लगता है कि पहला प्रिंट स्टेटमेंट सत्य होगा। लेकिन ऐसा लगता है कि जादू विधि __instancecheck__
नहीं कहा जाता है। और मुझे नहीं पता कि दूसरा प्रिंट स्टेटमेंट क्यों काम कर सकता है क्योंकि isinstance
को दूसरे पैरामीटर के रूप में कक्षा/प्रकार लेना चाहिए।
क्या किसी को पता है कि समस्या क्या है? धन्यवाद।
धन्यवाद। @ thg435 ने मुझे एक अच्छा उदाहरण दिया और अब मुझे पता है कि इसे कैसे प्राप्त किया जाए। – adarliu