首页 > 其他 > 详细

根据字符串当作变量,进行类名转换

时间:2021-02-23 13:33:24      阅读:12      评论:0      收藏:0      [点我收藏+]

 

#配置文件中数据

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‘

根据字符串当作变量,进行类名转换

原文:https://www.cnblogs.com/longyi2020/p/14435422.html

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