Python - 添加到调用的本地

时间:2018-01-10 11:03:21

标签: python python-3.x jupyter-notebook

我有一个允许用户启动交互式Python会话的应用程序。因此,我的重要功能被添加到本地集合中:

code.interact( local = get_my_functions() )

这是一个天真的用户只需键入函数而不必担心导入:

>>> my_function( ... )

(Nb:这是用户界面的一部分,并不排除高级用户将我的应用程序导入库并正常使用)

我希望与Jupyter笔记本实现相同的功能。这基本上涉及相同的事情 - 将我的函数添加到交互式会话的本地。

由于我无法使用code.interact( locals = ... ),我考虑在脚本开头定义以下内容:

def add_builtins()
    builtins.__dict__.update( get_my_functions() )

然后在笔记本中调用add_builtins。但是我可以看出为什么这可能被认为是不好的做法:我只希望为交互式会话添加到本地,而不是在整个会话中覆盖内置。

我也考虑过:

globals().update( get_my_functions() )

但这需要这条线本身存在于笔记本代码中,以便检索相关的globals字典,这很乱。

有更好的选择吗?

0 个答案:

没有答案