前言
这年头,仅仅是硬编码的方式已经满足不了项目逇可拓展性,为了实现拓展的功能,考虑使用插件化加载功能来实现
参考
本文中的方法是import实现
以及参考开源python漏洞扫描器中的实现
https://github.com/Lcys/lcyscan
该扫描器通过加载不同的扫描模块,然后开启线程来实现
实现
废话少说,直接上代码
项目结构如下图:
定义了一个Plugins包,中间包含了两个插件Plugin1、Plugin2
# Plugin1:
class A(object):
def __init__(self):
pass
def process(self):
print('Plugin1')