मैं कुछ इस तरह हैं:मैं एक लूप के साथ संदर्भ प्रबंधक कैसे बना सकता हूं?
from contextlib import contextmanager
@contextmanager
def loop(seq):
for i in seq:
try:
do_setup(i)
yield # with body executes here
do_cleanup(i)
except CustomError as e:
print(e)
with loop([1,2,3]):
do_something_else()
do_whatever()
लेकिन contextmanager काम नहीं करता है, क्योंकि यह जनरेटर ठीक एक बार उपज के लिए उम्मीद है।
कारण मैं इसे क्यों चाहता हूं क्योंकि मैं मूल रूप से लूप के लिए अपना खुद का कस्टम बनाना चाहता हूं। मेरे पास एक संशोधित आईपीथन है जिसका प्रयोग परीक्षण उपकरणों को नियंत्रित करने के लिए किया जाता है। यह स्पष्ट रूप से एक पूर्ण पायथन आरईपीएल है, लेकिन अधिकांश समय उपयोगकर्ता केवल पूर्वनिर्धारित कार्यों (बैश प्रॉम्प्ट के समान) को कॉल कर रहा है, और उपयोगकर्ता को प्रोग्रामर होने या पाइथन से परिचित होने की उम्मीद नहीं है। प्रत्येक पुनरावृत्ति के लिए सेटअप/क्लीनअप और अपवाद हैंडलिंग के साथ कुछ मनमानी कोड पर लूप करने का एक तरीका होना चाहिए, और यह उपरोक्त के रूप में टाइप करने के लिए सरल होना चाहिए।
मुझे पता था कि यह ऐसा कुछ आसान होगा। धन्यवाद! – jpkotta