是什么区别globals(),locals()和vars()?他们回报了什么?结果更新是否有用?
假设我在Jupyter/Ipython笔记本中进行了更大规模的数据分析,并完成了大量耗时的计算.然后,出于某种原因,我必须关闭jupyter本地服务器I,但是我想稍后返回进行分析,而不必再次进行所有耗时的计算.
我想什么想爱做的是pickle或存储整个Jupyter会话(所有大熊猫dataframes,np.arrays,变量,...),所以我可以放心地关闭服务器知道我可以在完全相同的状态返回到我的会话之前.
它在技术上是否可行?我忽略了内置功能吗?
编辑:根据这个答案,有一个%store 魔术应该是"轻量级泡菜".但是,您必须手动存储变量,如下所示:
#inside a ipython/nb session
foo = "A dummy string"
%store foo
关闭视频,重新启动内核#r
%store -r foo进行刷新
print(foo) # "A dummy string"
这与我想要的非常接近,但是必须手动完成并且无法区分不同的会话会使它变得不那么有用.
一位朋友上周问我如何枚举或列出程序/函数/等中的所有变量.出于调试的目的(基本上获取所有内容的快照,以便您可以查看设置了哪些变量,或者是否设置了它们).我环顾四周,找到了一个比较好的Python方法:
#!/usr/bin/python
foo1 = "Hello world"
foo2 = "bar"
foo3 = {"1":"a",
"2":"b"}
foo4 = "1+1"
for name in dir():
myvalue = eval(name)
print name, "is", type(name), "and is equal to ", myvalue
这将输出如下内容:
__builtins__ is <type 'str'> and is equal to <module '__builtin__' (built-in)> __doc__ is <type 'str'> and is equal to None __file__ is <type 'str'> and is equal to ./foo.py __name__ is <type 'str'> and is equal to __main__ foo1 is <type 'str'> and is equal to …
在调试时,我们经常会看到如下的print语句:
print x # easy to type, but no context
print 'x=',x # more context, harder to type
12
x= 12
Run Code Online (Sandbox Code Playgroud)
如何编写一个函数来获取变量或变量的名称并打印其名称和值?我只对调试输出感兴趣,这不会被合并到生产代码中.
debugPrint(x) # or
debugPrint('x')
x=12
Run Code Online (Sandbox Code Playgroud) 是否可以检查当前 python 工作空间/环境中存在哪些变量或任何类的实例?我可以使用任何函数来列出它们吗?提前致谢!