def optimizations(cls):
"""
:return:
"""
if not hasattr(cls, '_optimizations'):
cls._optimizations = {}
package = sys.modules[BasicOptimization.__module__]
path = os.path.dirname(package.__file__)
for loader, module_name, is_pkg in pkgutil.iter_modules([path]):
if module_name.startswith('__'):
continue
module = import_module('.' + module_name, package.__name__)
for _type in vars(module).values():
if not isinstance(_type, type):
continue
if isabstract(_type):
continue
if not issubclass(_type, cls):
continue
try:
obj = _type()
cls._optimizations[obj.id] = obj
except:
pass
return cls._optimizations
评论列表
文章目录