يلقي مثيل الطبقة إلى الفئة الفرعية
سؤال
أنا استخدم بوتو لإدارة بعض EC2. الحالات. يوفر فئة مثيل. أود تصنيفها لتلبية احتياجاتي الخاصة. نظرا لأن Boto يوفر واجهة الاستعلام للحصول على مثيلاتك، فأنا بحاجة إلى شيء للتحويل بين الفصول. يبدو أن هذا الحل يعمل، لكن تغيير سمة الفصل تبدو مراوغة. هل هناك طريقة أفضل؟
from boto.ec2.instance import Instance as _Instance
class Instance(_Instance):
@classmethod
def from_instance(cls, instance):
instance.__class__ = cls
# set other attributes that this subclass cares about
return instance
المحلول
لن أفهم لا أعتقد أن الصب سياسة جيدة.
بدلا من ذلك، النظر في غلاف أو واجهة.
class MyThing( object ):
def __init__( self, theInstance ):
self.ec2_instance = theInstance
الآن، يمكنك الفئة الفرعية MyThing
بقدر ما تريد ويجب أن لا تحتاج إلى أن تلطفك boto.ec2.instance.Instance
على الاطلاق. يبقى كعنصر غير واضح أكثر أو أقل في جسمك.
لا تنتمي إلى StackOverflow