如何创建python插件?
下面是我想做的例子 我有不同的双门车、公共汽车、厢式货车,但它们是从“车辆”继承而来的。我想做的是创建一个基类(“Vehicle”),这样每个人都需要遵循。然后人们可以构建自己的插件(例如,总线、货车) 然后其他用户会像这样使用插件如何创建python插件?,python,plugins,Python,Plugins,下面是我想做的例子 我有不同的双门车、公共汽车、厢式货车,但它们是从“车辆”继承而来的。我想做的是创建一个基类(“Vehicle”),这样每个人都需要遵循。然后人们可以构建自己的插件(例如,总线、货车) 然后其他用户会像这样使用插件 my_vehicle = Vehicle('bus') 然后将使用总线类 我有这个想法,但我不知道应该如何实施 提前感谢您可以为此使用元类: class VehicleType(type): registry = {} def __init__(
my_vehicle = Vehicle('bus')
然后将使用总线类
我有这个想法,但我不知道应该如何实施
提前感谢您可以为此使用元类:
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'>
等级车辆类型(类型):
注册表={}
定义初始值(自身、名称、基数、属性):
self.registry[name.lower()]=self
定义调用(self,name):
cls=self.registry[名称]
inst=cls.\uuuu新\uuuuuu(cls)
仪器初始化()
返回仪表
类别车辆(对象):
__元类\车辆类型
车辆类别:
通过
汽车=汽车(“汽车”)
打印(类型(汽车))#
这是通过让类继承过程在元类中注册类,然后重写调用
Vehicle
的行为,以便它动态地分派到适当的类来实现的。另一个选项是使用已经存在的插件库,例如
这将为您提供:
- 创建插件的简明方法
- 动态加载它们的几种方法