zoukankan      html  css  js  c++  java
  • 根据字符串当作变量,进行类名转换

    #配置文件中数据
    
    PLUGINS = {
        'disk': 'src.plugins.disk.DiskPlugin',
        'mem': 'src.plugins.mem.MemPlugin',
        'nic': 'src.plugins.nic.NicPlugin',
        }
    response = {}
    
    for k,v in PLUGINS.items():
        #将类名从字符串分离出来
        file_path,clsname=v.rsplit(".",1)
        file_obj=__import__(file_path,fromlist=clsname)  #方式一
        #import importlib
        #file_obj=importlib.import_module(file_path)  ##方式二
            if hasattr(file_obj,clsname):
                ret=getattr(file_obj,clsname)()
                response[k]=ret.execute("查看平台命令")
             else:      
                raise Exception("配置文件错误")
    print(response)
     '''  
    
    期望返回的字典内容: 
    response = {
        'disk': "disksadfasdfasdfa",
        'mem': "memasdfasdfasdf",
        'nic': "nicasdfasdfasdfasf",
    }
    
    '''
    
    
    三个py文件:src/plugins/disk.py
    
    
    
    ```python
    class DiskPlugin:
        def execute(self):
                return 'disksadfasdfasdfa'
    ```
    
    src/plugins/mem.py
    
    ```python
    class MemPlugin:
        def execute(self):
            return 'memasdfasdfasdf'
    ```
    
    src/plugins/nic.py
    
    ```python
    class NicPlugin:
        def execute(self):
        return 'nicasdfasdfasdfasf'
    ```

    src/plugins/nic.py


    class NicPlugin:
    def execute(self):
    return 'nicasdfasdfasdfasf'

  • 相关阅读:
    浅析http缓存
    多级路由请求js文件路径不对的解决方法
    移动端屏幕适配原理以及方法讲解
    zoom与scale的异同
    querySelectorAll选择器的js实现
    垂直居中效果汇总
    windows配置php开发环境
    CentOS 6.2安装nagios
    Ganglia安装
    Ubuntu 14.04上安装Riak
  • 原文地址:https://www.cnblogs.com/longyi2020/p/14435422.html
Copyright © 2011-2022 走看看