سؤال

أنا استخدم بوتو لإدارة بعض 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 على الاطلاق. يبقى كعنصر غير واضح أكثر أو أقل في جسمك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top