如何在python中仅获取用户定义的全局变量?

如何在python中仅获取用户定义的全局变量?,python,python-2.7,Python,Python 2.7,我(有点)熟悉Python中的globals()。我的问题是,返回的字典包含所有全局可用的变量,如\uuuuuuuuuuuuuuuuuuuu文件,\uuuuuuuuuu文档,导入模块的对象等 有没有办法得到一个只包含我全局定义的变量的列表或dict?我的意思是这样的: >>> a = 6 >>> b = 42 >>> foo = "bar" >>> my_globals() {'a': 6, 'b': 42, 'foo':

我(有点)熟悉Python中的
globals()。我的问题是,返回的字典包含所有全局可用的变量,如
\uuuuuuuuuuuuuuuuuuuu文件
\uuuuuuuuuu文档
,导入模块的对象等

有没有办法得到一个只包含我全局定义的变量的列表或dict?我的意思是这样的:

>>> a = 6
>>> b = 42
>>> foo = "bar"
>>> my_globals()
{'a': 6, 'b': 42, 'foo': 'bar'}

您可以尝试以下方法:

  • 获取包含所有全局变量的列表
  • 使用
    \uuuuuuuuuuuuuuuuuuuu
    删除所有值。在这里,一个简单的正则表达式就可以做到这一点
  • 您有用户定义的全局变量

  • 听起来不错,虽然也有导入模块的对象,谁知道还有什么是我没有偶然发现的。不幸的是,你不能100%确定在所有情况下都使用这种方法。听起来像是XY问题-似乎你在解决错误的问题。为什么你想要全局变量,为什么你需要动态地获取它们?为什么你想要这样?您的实际问题是什么?出于日志记录的目的,可以很方便地转储我定义的所有变量。另一个想法:为您的值使用一个全局dict容器。通过这种方式,您可以记录、跟踪它,并自信地记录。所以,没有内置的方法可以做到这一点?