कक्षाओं में गतिशील गुण जोड़ना
नकली कक्षाओं का उपयोग करके डेटाबेस परिणाम सेट को अनुकरण करने की खोज में, एक चुनौती उत्पन्न होती है: गतिशील कैसे निर्दिष्ट करें किसी ऐसे उदाहरण के गुण जो किसी शब्दकोश से मिलते जुलते हों। इसमें ऐसे गुण बनाना शामिल है जो विशिष्ट मानों के साथ गुणों की तरह व्यवहार करते हैं। self.fn_readyonly))
हालाँकि, इससे वांछित व्यवहार के बजाय प्रॉपर्टी ऑब्जेक्ट प्राप्त हुए।
setattr(self, k, property(lambda x: vs[i], self.fn_readyonly))
क्लास फू(ऑब्जेक्ट): उत्तीर्ण फू = फू() foo.a = 3 Foo.b = संपत्ति (लैम्ब्डा स्व: स्व.ए 1) print(foo.b) # Prints 4
इस उदाहरण में, हम प्रॉपर्टी डिस्क्रिप्टर का उपयोग करके क्लास Foo में एक प्रॉपर्टी b जोड़ते हैं। Foo.b तक पहुंचने पर, पायथन डिस्क्रिप्टर की __get__ विधि को कॉल करता है और क्लास इंस्टेंस को एक तर्क के रूप में पास करता है। __get__ विधि तब संपत्ति का मूल्य लौटाती है, जिसकी गणना self.a 1 के रूप में की जाती है।
class Foo(object): pass foo = Foo() foo.a = 3 Foo.b = property(lambda self: self.a 1) print(foo.b) # Prints 4
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3