【问题标题】:Python - Store function definition for later usePython - 存储函数定义供以后使用
【发布时间】:2020-05-11 15:14:37
【问题描述】:

我有一个应用程序运行着许多使用散景的可视化。我为每个可视化定义了一个函数。

对于新的可视化,有没有办法 -

  • 我在其他地方编写可视化功能,例如jupyter 笔记本
  • 将此函数以某种方式存储在数据库或文件中,就像我们可以在 javascript 中一样
  • 稍后使用 eval() 运行此函数

你能给我指个方向吗?我尝试了 lambda 函数,但这是单行代码,而我的函数可能更复杂。

如果您需要什么,请放入 cmets :)

提前致谢。

【问题讨论】:

  • 您是否希望将此函数添加到您自己的类中并调用它以供以后使用?
  • 我不需要将它添加到类中。只需要使用 eval() 或其他东西以某种方式调用它。
  • 你可以将你的函数保存为python脚本(function.py),当你想在你的笔记本中调用时使用命令“!python function.py”
  • 我将在笔记本中创建 fn,将其保存在某处,在应用程序运行时我将加载函数并调用。这次不在笔记本里:(

标签: eval pickle python-3.5


【解决方案1】:

好的,我得到了答案。 Python 泡菜 - https://docs.python.org/3/library/pickle.html

无需使用 eval()。

一个非常基本和简单的例子。

import pickle

def calculations(a, b):
    c = a + b
    print('Addition is ', c)
    return c

fun_def_str = pickle.dumps(calculations)

cal = pickle.loads(fun_def_str)

result = cal(5,6) # Prints - Addition is 11

print(result) # Outputs: 11

我希望这对某人有帮助:)

【讨论】:

    猜你喜欢
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多