以下是我想做的例子
我有双门车,巴士,范不同的车辆,但他们是继承车辆'。我想要做的是创建一个基类(' Vehicle'),这样每个人都需要关注。然后人们可以建立自己的插件(例如Bus,Van)。
然后其他用户会像这样使用插件
my_vehicle = Vehicle('bus')
然后将使用公共汽车类。
我明白了,但我不知道应该如何实施呢?
提前致谢
答案 0 :(得分:1)
您可以使用元类:
class VehicleType(type):
registry = {}
def __init__(self, name, bases, attrs):
self.registry[name.lower()] = self
def __call__(self, name):
cls = self.registry[name]
inst = cls.__new__(cls)
inst.__init__()
return inst
class Vehicle(object):
__metaclass__ = VehicleType
class Car(Vehicle):
pass
car = Vehicle("car")
print(type(car)) # <class '__main__.Car'>
这可以通过让类继承进程在元类中注册该类,然后覆盖调用Vehicle
的行为,以便它动态调度到适当的类。
答案 1 :(得分:0)