पर विशेषताओं को जोड़ें, क्या मैं गतिशील रूप से एक नई शैली के वर्ग (object
से प्राप्त) के उदाहरणों में विशेषताओं को जोड़ सकता हूं?पायथन: गतिशील रूप से नई शैली के वर्ग/obj
विवरण:
मैं sqlite3.Connection का एक उदाहरण के साथ काम कर रहा हूँ। बस वर्ग को विस्तारित करना एक विकल्प नहीं है क्योंकि मुझे कन्स्ट्रक्टर को कॉल करके इंस्टेंस नहीं मिलता है; मुझे sqlite3.connect()
पर कॉल करके मिलता है।
एक रैपर बनाने से मुझे जो कोड लिख रहा है, उसके लिए मुझे बहुत अधिक बचत नहीं होती है।
अजगर 2.7.1
संपादित
सही जवाब सब। लेकिन मैं अभी भी अपने लक्ष्य तक नहीं पहुंच रहा हूं; sqlite3.Connection बार के उदाहरण निम्नलिखित तरीकों से विशेषताओं को सेट करने के मेरे प्रयास (जैसे object
के उदाहरण)। मुझे हमेशा एक विशेषता प्राप्त होती है:
> conn = sqlite3.connect([filepath])
> conn.a = 'foo'
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
conn.a = 'foo'
AttributeError: 'object' object has no attribute 'a'
> conn.__setattr__('a','foo')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
conn.__setattr__('a','foo')
AttributeError: 'object' object has no attribute 'a'
सहायता?
आप यह जानने के लिए वास्तविक __dict__ की जांच कर सकते हैं कि sqlite3 क्या उपयोग कर रहा है। लेकिन यह एक सी दिनचर्या हो सकता है, इस मामले में आपको इसे किसी भी तरह लपेटने के लिए मजबूर किया जाएगा। –
+1। यहां तक कि 'वस्तु।__setattr __ (conn, 'a', 'foo') 'विशेषता Error बढ़ाता है। दिलचस्प सवाल! – EOL