python获取调用函数的当前变量

标签 python dir

def foo():
    a = 1
    b = 2
    dir() # prints [a, b]
    bar(?) 

der bar(foo_pointer):
    print dir(foo_pointer) # should print [a,b]

我正在尝试使用 bar(sys.modules[__name__].main),但这不是 [a,b],而是 ['__call__','__class__' .. .] 没有 ab

我实际上想保护该指针以备后用,所以我不能只传递 [a,b]

最佳答案

使用 sys._getframe() function访问调用框架。框架对象有一个 f_locals 属性,让您可以访问该框架的局部变量:

import sys

def bar():
    caller = sys._getframe(1)
    print caller.f_locals

关于python获取调用函数的当前变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707848/

相关文章:

batch-file - 遍历子目录批处理文件中的文件

windows - 仅显示文件名和文件大小 windows dos

batch-file - IF EXIST - 没有扩展名的文件

python - Setuptools 包发现

python - python读取大数据的不同方式

sas - 使用 SAS 宏从 Windows 目录通过管道传输文件名列表

java - 从目录中获取最高数字文件名(作为 int)-Java

使用 Pandas 进行批量简单计算的 Python GPU 编程

python - 如何在 Python Flask 应用程序中存储环境变量?

Python:使字典列表相对于一个键是唯一的