zoukankan      html  css  js  c++  java
  • 模仿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
    ]

    ''
  • 相关阅读:
    servlet多线程同步问题
    servlet之request
    servlet方法
    非静态内部类不能有静态成员
    接口与抽象类的区别
    枚举
    Install CUDA 6.0 on Ubuntu 14.04 LTS
    Introduction to Deep Learning Algorithms
    codeblocks 使用汇总
    矩阵奇异值分解(SVD)及其应用
  • 原文地址:https://www.cnblogs.com/xuexihainan/p/14045494.html
Copyright © 2011-2022 走看看