我有一个对象,其中包含许多静态访问的 ID。我想将其拆分为另一个对象,该对象仅包含那些 ID,而无需修改已经存在的代码库。举个例子:
class _CarType(object):
DIESEL_CAR_ENGINE = 0
GAS_CAR_ENGINE = 1 # lots of these ids
class Car(object):
types = _CarType
我希望能够通过调用 Car.types.DIESEL_CAR_ENGINE 或通过 Car.DIESEL_CAR_ENGINE 向后访问 _CarType.DIESEL_CAR_ENGINE与现有代码的兼容性。很明显我不能使用 __getattr__ 所以我试图找到一种方法来完成这项工作(也许是元类?)
请您参考如下方法:
虽然这不完全是子类化的目的,但它完成了您所描述的:
class _CarType(object):
DIESEL_CAR_ENGINE = 0
GAS_CAR_ENGINE = 1 # lots of these ids
class Car(_CarType):
types = _CarType
