init.py
import settings
import importlib
def send_all(content):
for path_str in settings.NOTIFY_FILES_DIR: #循环配置文件内字符串
module_path,class_name = path_str.rsplit('.',maxsplit=1) #切片分开类名与模块路径
module = importlib.import_module(module_path) #导入模块
cls = getattr(module,class_name) #拿到类的名字
obj = cls()
obj.send(content)
email.py
class Email(object):
def __init__(self):
pass
def send(self,content):
print('邮箱通知:%s'%content)
wechat.py
class Wechat():
def __init__(self):
pass
def send(self, content):
print('微信通知:%s' % content)
run.py
import NOTIFY
NOTIFY.send_all('真尼玛难学')
settings.py
NOTIFY_FILES_DIR = [
'NOTIFY.email.Email',
'NOTIFY.wechat.Wechat',
]