首页 > 其他 > 详细

再次仿照django中间件的写法 写出初级功能的调用

时间:2021-07-10 21:58:49      阅读:26      评论:0      收藏:0      [点我收藏+]

前言:
django中间件的配置,均有字符串组成,将字符串注释后则取消对字符串的调用,将字符写上 则代表对字符串可在全局中使用,而我们所要考虑的是字符串为什么能够完成对其背后的函数的调用

模板

消息通知:

想同时发送qq,微信,邮箱,短信通知,

第一步:
建立一个py package(qq.py,wechat.py,email.py,__init__.py)

在各自的py文件,完成对类的书写,

在建立 settings 和 start文件

settings里配置 各自的位置列表 

关键点

NOTIFY_LIST = [
    notify.email.Email,
    notify.qq.Qq,
    notify.wechat.Wechat,
]
#若列表如上所示 如何取出并完成类的实例化形成对象
import importlib
for path_st in NOTIFY_LIST:
    module_str,class_name = path_str.rsplit(.,maxsplit=1)
    module = importlib.import_module(module_path)#相当于from notify import email
        cls = getattr(module,class_name) #利用反射拿到类
        obj = cls() #类的实例化
    
   

主要关键点 是 importlib 和 getattr的使用 都是基础的模块 即使学了很久似乎也无法结合这样一种的编程思想。

 

再次仿照django中间件的写法 写出初级功能的调用

原文:https://www.cnblogs.com/Sneakerboy/p/14994320.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!