2017-04-13 11 views
5

मूल रूप से बजाय इस की:क्या स्थानीय लोगों को बदलना संभव है?

context1.a 
context1.b() 
context2.a 
context2.b() 

मैं लिखना चाहते हैं:

with context1(): 
    a 
    b() 

with context2(): 
    a 
    b() 

आदर्श रूप में मैं से स्विच "स्थानीय लोगों शब्दकोश" एक कस्टम __get__ के साथ एक वस्तु के साथ कर ऐसा कर सकता है, लेकिन मैं मुझे यह नहीं पता कि यह कैसे करना है या यदि यह भी संभव है।

क्यों ?: मैंने एक प्रकार का अनुमानित प्रेषण (मज़ेदार) लागू किया है, लेकिन मैं केवल प्रत्येक बार संदर्भ को स्पष्ट रूप से नामकरण करके उपयोग कर सकता हूं: context.a() + context.b() हर समय लिखने के लिए परेशान है।

+5

मुझे लगता है कि आप शायद सबसे कठिन तरीके से किसी समस्या को हल करने का प्रयास कर रहे हैं। आप केवल एक ऐसा फ़ंक्शन क्यों नहीं बना सकते जो इन्हें आवश्यकतानुसार आमंत्रित करता हो? –

+0

क्या यह जावास्क्रिप्ट के 'साथ' जैसा होना चाहिए? यह जावास्क्रिप्ट में भी एक अच्छा विचार नहीं है; यह बहिष्कृत है, और सख्त मोड में निषिद्ध है। – user2357112

उत्तर

0

ऐसा मत करो। सिर्फ इसलिए कि एक ट्यूरिंग मशीन कुछ कर सकती है इसका मतलब यह नहीं है कि लोगों के लिए अपना इरादा संवाद करने का एक अच्छा तरीका है।

बस मानक वाक्यविन्यास से चिपके रहें, और फिर आपका कोड अन्य इंजीनियरों के लिए स्पष्ट होगा।

with context1() as c: 
     c.a 
     c.b() 
संबंधित मुद्दे