मैं कुछ कमांड लाइन विकल्प रखने के लिए एक छोटी सी बंद पायथन ऑब्जेक्ट बनाना चाहता हूं। मैं कुछ इस तरह करना चाहते हैं:एक छोटा सा बंद पायथन ऑब्जेक्ट बनाने का एक आसान तरीका क्या है?
options = ??????
options.VERBOSE = True
options.IGNORE_WARNINGS = False
# Then, elsewhere in the code...
if options.VERBOSE:
...
बेशक मैं एक शब्दकोश का उपयोग कर सकता है, लेकिन options.VERBOSE
अधिक पठनीय और आसान options['VERBOSE']
से टाइप करने के लिए है।
मैं सोचा है कि मैं,
options = object()
ऐसा करने में सक्षम होना चाहिए, क्योंकि object
सभी वर्ग की वस्तुओं के आधार प्रकार है और इसलिए कोई विशेषताओं के साथ एक वर्ग की तरह कुछ किया जाना चाहिए। लेकिन यह काम नहीं करता है, क्योंकि एक वस्तु object()
का उपयोग कर एक __dict__
सदस्य नहीं है बनाया है, और इसलिए भी इसे करने के लिए गुण नहीं जोड़ सकते हैं:
options.VERBOSE = True
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'VERBOSE'
क्या एक वस्तु बनाने के लिए सबसे आसान "pythonic" तरीका है कि इस तरह इस्तेमाल किया जा सकता है, अधिमानतः एक अतिरिक्त सहायक वर्ग बनाने के बिना?
यह बहुत ही अजीब नहीं होने के दौरान मैंने जो अनुरोध किया है उसके नजदीकी जैसा लगता है। और 'विकल्प' वर्ग में कोई अन्य विशेषता नहीं है जो भ्रमित होने की संभावना है। – mhagger
मुझे लगता है कि इस तरह की कक्षा परिभाषा में VERBOSE डालना थोड़े व्यर्थ है क्योंकि यह इसे क्लास-वेरिएबल (उदाहरण आवृत्ति नहीं) के रूप में बनाता है AFAIK – hasen
दरअसल, यह बात है। कक्षा को सिर्फ नामस्थान के रूप में उपयोग किया जा रहा है, ताकि आपको मूल्यों को प्राप्त करने के लिए कुछ भी चालू नहीं करना पड़े। –