gpt4 book ai didi

python - 将类实例转换为子类

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:56 25 4
gpt4 key购买 nike

我正在使用 boto管理一些EC2实例。它提供了一个实例类。我想对其进行子类化以满足我的特殊需求。由于 boto 提供了一个查询接口(interface)来获取你的实例,我需要一些东西来在类之间进行转换。这个解决方案似乎可行,但更改类属性似乎很狡猾。有没有更好的办法?

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。它在您的对象中仍然是一个或多或少的不透明元素。

关于python - 将类实例转换为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/935448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com