运维自动化 - 如何用外部读取的文件内容来确定python函数的执行顺序以及参数?
PHP中文网
PHP中文网 2017-06-14 10:53:27
0
1
953

现在做一套服务器上程序的自动工具,有启停、调整的各种操作。但是不同节点上的部署内容都不仅相同,假设现在已经做好了各种功能的python函数。然后通过读取外部信息,比如一个json数据,来确定这些函数的运行顺序与参数,能否提一下如何实现?
比如有 功能函数1(参数1,参数2) 功能函数2(参数1,参数2,参数3) 功能函数3(参数1) 三种业务函数。
然后我读取一个{{{'funcname':'功能函数2'},{'parameter':[para1,para2,para3]}},{{'funcname':'功能函数1'},{'parameter':[para1,para2]}}}
然后程序就会按照函数2,函数1的顺序,并读取其中的parameter参数执行这一系列动作。
(其实作为自动化工具,肯定需要及时反馈信息,再执行完每个函数之后还会读取返回信息,如果出错就会立即中断程序,并且上报信息或者记录日志,所以也就是说每执行完一个功能函数,还会执行一个简单判断返回结果的程序)

这里需要注意的是,要执行几个功能函数是不确定的,顺序也是不确定的。我直接想到的是的最笨的办法是,遍历外部json文件,然后读出funcname,来判断执行哪个函数。但感觉这种方式,后期拓展性、维护起来都比较麻烦。希望能讨论一下

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
女神的闺蜜爱上我

使用eval可以将字符串当作代码来执行,并返回结果:

def func1(a,b):
    return a+b

s = eval("func1(1,2)")
print(s)
# 3
  1. 用一个循环,遍历Json文件的所有items

  2. 将函数名和参数,转换为字符串。

  3. eval执行字符串

  4. 处理返回值

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板