class - Create a python object that mimics string iterator behaviour -
इस सवाल का पहले से ही एक उत्तर है: < / p>
- 3 जवाब
मैं बनाने की कोशिश कर रहा हूँ एक ऑब्जेक्ट जो स्ट्रिंग की तरह व्यवहार करता है जब इसे "x इन वाई" वाक्यविन्यास में उपयोग किया जाता है। उदाहरण के लिए, इस मामले में, मैं चाहता हूं कि मेरी ऑब्जेक्ट "test" स्ट्रिंग "एबीसीडीईएफजी" की तरह व्यवहार करती है जब मैं तुलना करता हूं यह एक और स्ट्रिंग के लिए मुझे लगता है कि यह iter फ़ंक्शन में किया जाना चाहिए लेकिन यह काम करने के लिए प्रतीत नहीं होता है।
वर्ग टेस्ट (ऑब्जेक्ट): def __init __ (स्वयं, var): self.var = var def __iter __ (स्व): रिटर्न इटरर (सेल्फ। var) & gt; & gt; & gt; Test = test ("ABCDEFG") & gt; & gt; & gt; # परीक्षण में "ईएफ" प्रिंट करें, मैं इसे सही गलत और gt; & gt; & gt; प्रिंट "ईएफ" में "एबीसीडीईएफजी" # इस तरह से परीक्षण कैसे सही व्यवहार करना चाहिए
आप अपने वर्ग के साथ
में के व्यवहार को नियंत्रित करने के लिए विशेष विधि को अधिभार देना चाहते हैं:
& gt; & gt; & gt; कक्षा परीक्षण (ऑब्जेक्ट): ... def __init __ (आत्म, var): ... आत्म। var = var ... ... def __ में शामिल हैं __ (आत्म, सबस्ट्रेट): ... स्वयं में substr वापस ... । & Gt; & gt; & gt; Test = test ("ABCDEFG") & gt; & gt; & gt; प्रिंट में "ईएफ" प्रिंट करें सत्य एवं gt; & gt; & gt; प्रिंट में "वाईज़" प्रिंट करें और gt; & gt; & gt;
विशेष पद्धति (जो आपको अभी भी एक कस्टम स्ट्रिंग प्रकार के लिए अधिभार चाहिए) एक कंटेनर वर्ग पर एक इटरेटर बनाने के लिए है। दूसरे शब्दों में, यह आपकी कक्षा को सक्षम करता है:
& gt; & gt; & gt; कक्षा परीक्षण (ऑब्जेक्ट): ... def __init __ (आत्म, var): ... आत्म। var = var ... ... def __ में शामिल हैं __ (आत्म, सबस्ट्रेट): ... स्वयं में substr वापस ... ... def __iter __ (स्व): ... रिटर्न इटरर (सेल्फ.वर्) ... & gt; & gt; & gt; Test = test ("ABCDEFG") & gt; & gt; & gt; परीक्षा में मैं: प्रिंट आई # यह परीक्षण के कारण काम करता है .__ iter__ ... ए बी सी डी ई एफ जी & gt; & gt; & gt;
Comments
Post a Comment