python-如何将函数名字符串作为变量传递并进行调用

本文介绍了如何通过配置文件动态调用Python函数。在代码中,将每个问题对应要调用的函数名存储在配置文件中,然后通过`globals()`函数根据字符串名称获取实际的函数对象并进行调用。这种方法允许程序具有良好的可扩展性,可以根据不同的问题灵活地执行相应的函数。
摘要由CSDN通过智能技术生成

在代码中,我需要针对一个特定的问题需要调用特定的函数进行解析

为了可扩展性,有可能会出现很多问题,所以我就把每个问题调用什么函数写在配置文件中,如下:

{
  "11000": {
    "check_service": {
      "name": "nc_echopid.sh",
      "cmd": "cd /data/ ; /bin/bash ./nc_echopid.sh",
      "path": "/data/",
      "analysis_func": "analysis_check_service_result"
    }
  }
}

函数具体的定义写在另外一个文件中

所以我从配置文件中读到的是需要调用的函数名,并赋给了变量analysis

analysis = id_script_map[issue_id][task]["analysis_func"]

但是问题来了,我需要实际调用这个函数,如果直接用analysis进行调用,只是字符串,无法进行调用

查找了一番,找到的资料只是说直接传函数,但是我这个是动态的,

最后在一个角落的回答里找到这样一个方法,利用python的globals 查找传递的字符串,并返回函数本身

转化后即可调用

代码如下:

func = globals()[analysis] # 打印出来可以看到func就是analysis函数名对应的函数,类型是function

abnormal_item, normal_item = func(exec_result) # 按照函数定义进行调用即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值