如果你真的需要在外部json文件中存储一个函数,那么一个转向就是存储一个lambda函数,并使用该eval函数从你的脚本中调用它。但我并不是真的推荐它做好的做法......
config.json{
"x": 5,
"y": 4,
"func": "lambda a, b : a * b"
}
你的Python文件import json
def main():
with open('config.json') as f:
data = json.load(f)
v1, v2 = data['x'], data['y']
multiplier = eval(data['func'])
print(multiplier(v1, v2))
if __name__ == "__main__":
main()
演示Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
In[2]: ls
a.py
config.json
In[3]: import json
In[4]: def main():
...:
...: with open('config.json') as f:
...: data = json.load(f)
...:
...: v1, v2 = data['x'], data['y']
...:
...: multiplier = eval(data['func'])
...:
...: print(multiplier(v1, v2))
...:
In[5]: main()
20