अजगर में, मैं कैसे जांचूं कि कोई वस्तु एक जनरेटर वस्तु है?
यह कोशिश कर रहा है -
>>> type(myobject, generator)
त्रुटि देता है -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'generator' is not defined
(मुझे पता है कि मैं जांच कर सकता हूं कि क्या वस्तु के पास next
जनरेटर के लिए एक विधि है, लेकिन मैं कुछ ऐसा तरीका चाहता हूं जिसके उपयोग से मैं किसी भी वस्तु का प्रकार निर्धारित कर सकता हूं, न कि केवल जनरेटर।)
from types import GeneratorType;type(myobject, GeneratorType)
आपको कक्षा 'जनरेटर' की वस्तुओं के लिए उचित परिणाम देगा। लेकिन जैसा कि डेनिथ का तात्पर्य है, यह जरूरी नहीं कि सही रास्ता है।
__next__
, तो आप वास्तव में किसी भी इटिटर को स्वीकार कर रहे हैं, न कि केवल जनरेटर - जो बहुत ही संभव है कि आप क्या चाहते हैं।