• 模仿django的settings文件


    通过字符串调py文件并执行:

    '''

    init.py 精髓*****
    import settings
    import importlib

    def send_add(content):
    for path_str in setting.SETTING_LIST
    module_path,class_name = path_str.rsplit('.',maxsplit=1)
    # module_path = .email class_name = 'Email'
    从右切 切一次 并把值 赋给2个变量
    1 利用字符串导入模块
    module = importlib.import_module(module_path)
    以上就等于 from import email

    2 利用反射获取类型
    cls = getattr(module,class_name)

    3 生成类的对象
    obj - cls()

    4 利用鸭子类型直接调用send方法
    obj.send(content)


    wechat.py
    class Wechat(object):
    def __init__(self):
    pass # 发送微信需要做的前期准备工作 比如调用接口 模块等等

    def send(self,content) #暴露个接口
    print('微信通知%'%content)

    qq.py
    class qq(object):
    def __init__(self):
    pass # 发送qq需要做的前期准备工作 比如调用接口 模块等等

    def send(self,content) #暴露个接口
    print('qq通知%'%content)

    email.py
    class email(object):
    def __init__(self):
    pass # 发送邮箱需要做的前期准备工作 比如调用接口 模块等等

    def send(self,content) #暴露个接口
    print('email通知%'%content)


    start.py
    import
    .send_all('块下课了')


    配置文件 不在包里
    setting.py
    SETTING_LIST = [
    .email.Email #emailpy文件 Email是类名
    .qq.QQ
    .wechat.Wechat
    ]

    ''
  • 相关阅读:
    动画02
    动画01
    css过渡
    06强制类型转换
    05强制类型转换
    jetson 安装opencv4.4.0
    cpp中的内置异常
    cpp中std::string和std::wstring 相互转换
    qt creator杂记
    win10 git bash 使用vim 显示 git log
  • 原文地址:https://www.cnblogs.com/xuexihainan/p/14045494.html
Copyright © 2020-2023  润新知