我需要使用 Spyne 实现一个抽象模型。
事实上,假设 - 作为一个简单的例子 - 我想管理车库业务。
然后我有以下课程:
class Vehicle(ComplexModel):
''' this class is abstract '''
_type_info = [
('owner',Unicode)
]
class Car(Vehicle):
_type_info = [
('color',Unicode),
('speed',Integer)
]
class Bike(Vehicle):
_type_info = [
('size',Integer)
]
class Garage(ComplexModel):
_type_info = [
('vehicles',Array(Vehicle))
]
当我想让我的车库管理所有车辆时,我只会获得他们的车辆属性(这里也就是所有者),而不是其他的。
有没有办法用 Spyne 管理抽象对象?
当然,一个简单的方法是:
class Garage(ComplexModel):
_type_info = [
('bikes',Array(Bike)),
('cars',Array(Car))
]
但我不喜欢它:如果我这样做,每次创建新的车辆类时,我都必须更改我的“车库”类......我希望我的车库类管理车辆,无论它是什么类型的车辆是。可能吗?