模块对象访问Jupyter笔记本单元格中的“全局”值

时间:2018-03-20 04:58:12

标签: python module scope jupyter-notebook

screenshot of module and notebook我正在开发一个应用程序,对于第一个版本,我使用Jupyter笔记本作为最终用户界面。笔记本中的第二个单元格从我编写的模块中导入所有对象。第三个单元格就像一个配置文件;期望最终用户设置变量值。在后续单元格中,调用模块函数和/或实例方法,但无法“查找”在“配置”单元格中绑定的变量。

如何在模块函数调用中访问a之类的变量?

1 个答案:

答案 0 :(得分:1)

我认为你在python开发方面有很多经验,对吧?因此,您必须了解"配置"中定义的变量。单元格绑定到当前范围。它们肯定是全球变量,但是全球变量#34;是相对的。

我明白你想做什么。你想要定义像内置的东西。它可以在每个角落访问,无需任何特殊代码,例如" import"。

这不是一个好习惯,因为它会打破python的范围管理策略。更好的是你可以将参数传递给该函数。

如果你真的想这样做,你需要将你的" gloabl"(甚至超出普通的gloabl)变量绑定到__builtins__。例如:

# a.py
import b
__builtins__.a = 5
b.test()

# b.py
def test():
    print(a)

它可以工作。