【问题标题】:How to list all variables defined by myself in Python, excluding imported variables?如何列出自己在Python中定义的所有变量,不包括导入的变量?
【发布时间】:2018-07-11 07:48:05
【问题描述】:

我知道有一些方法可以列出所有变量,例如 locals()、globals()、dir()。但是他们也列出了从其他模块导入的变量,而且列表很长,很难找到自己定义的变量。那么我应该如何列出自己定义的所有变量,更好地列出它们的值呢?

这是一个例子:

import numpy
a=1
b=2
dir()

那么结果是:

['In',
 'Out',
 '_',
 '_1',
 '_2',
 '_3',
 '_4',
 '__',
 '___',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__name__',
 '__package__',
 '_dh',
 '_i',
 '_i1',
 '_i2',
 '_i3',
 '_i4',
 '_i5',
 '_ih',
 '_ii',
 '_iii',
 '_oh',
 '_sh',
 'a',
 'b',
 'exit',
 'get_ipython',
 'numpy',
 'quit']

但我只想查看此模块中定义的变量,即 a 和 b。我该怎么做?

【问题讨论】:

  • 你写的代码。为什么不知道自己导入了什么?
  • 如果你想要值,然后记录它们。如果您不愿意这样做,那么为什么不使用带有精心放置断点的调试器呢?

标签: python variables


【解决方案1】:

在任何导入之后,将 locals() 的结果保存在模块顶部。

随后出现在locals() 中的任何新项目都必须由您定义。

【讨论】:

  • 感谢您的回答。但正如您在我添加的示例中看到的那样,记住导入模块中的所有变量似乎不切实际。或许我可以用一个变量来记录导入后locals()的结果,但是这样做有点麻烦。
  • my_vars = [v for v in locals() if v not in original_locals]
猜你喜欢
  • 2021-07-11
  • 2017-11-18
  • 2010-11-08
  • 2014-02-03
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
相关资源
最近更新 更多