मैं पूरी तरह से एक वस्तु रैप करने के लिए इतना है कि सभी विशेषता और विधि अनुरोध वस्तु को अग्रेषित करने के लिए यह लपेटकर है, लेकिन यह भी किसी भी तरीके या चर कि मैं चाहता हूँ अधिभावी, साथ ही के कुछ उपलब्ध कराने के लिए इच्छुक हूँ में एक वस्तु लपेट मेरी अपने तरीके यह आवरण वर्ग, मौजूदा वर्ग (जैसे कि यह वास्तव में वर्ग है isinstance
कार्य करना चाहिए) के रूप में 100% दिखाई देनी चाहिए लेकिन उपवर्गीकरण में ही है, यह कटौती करने के लिए नहीं जा रहा है के रूप में मैं एक मौजूदा वस्तु रैप करने के लिए चाहते हैं। क्या ऐसा करने के लिए पाइथन में कुछ समाधान है? मैं की तर्ज पर कुछ सोच रहा था:पूरी तरह से अजगर
class ObjectWrapper(BaseClass):
def __init__(self, baseObject):
self.baseObject = baseObject
def overriddenMethod(self):
...
def myOwnMethod1(self):
...
...
def __getattr__(self, attr):
if attr in ['overriddenMethod', 'myOwnMethod1', 'myOwnMethod2', ...]
# return the requested method
else:
return getattr(self.baseObject, attr)
लेकिन मुझे लगता है कि अधिभावी __getattr__
, __setattr__
और __hasattr__
से परिचित नहीं हूँ, इसलिए मुझे यकीन है कि कैसे यह सही पाने के लिए नहीं कर रहा हूँ।
[इस सवाल] (http://stackoverflow.com/questions/1382871/dynamically-attaching-a-method-to-an-existing-python-object- को मेरा उत्तर देखें उत्पन्न-साथ-बड़ा घूँट/1383646 # 1383646)। – PaulMcG