我想将 exec 与一个非常简单的 python 代码一起使用,并列出调用的函数而不是调用它们。
如果我知道将调用哪些函数,我可以创建一个字典,将命名函数定义为print
并将其用作exec
.
我正在尝试使用自定义字典类,该类通过覆盖getitem打印调用的函数,但exec
通过发出以下命令无济于事:
TypeError: exec: arg 2 must be a dictionary or None
有没有办法以通用方式自定义函数调用?
编辑:
例如,假设我有以下用 python 编写的配置文件:
user('foo')
password('foo123')
home('/home/foo')
user('bar')
password('bar123')
home('/home/foo')
我需要运行这个文件并打印其中包含的信息。我可以使用以下 python 程序来做到这一点:
d = { 'user': print, 'password': print, 'home: 'print }
execfile(filename, d, {})
这种方法的问题是我必须d
使用文件中存在的所有函数进行初始化。我尝试使用自定义字典,在 getitem 上做了一些不同的事情,并得到了TypeError
上述结果。