【发布时间】:2011-05-25 10:14:52
【问题描述】:
我想知道如何将字符串输入转换为变量名以用于 Python 代码。一个具体的例子:
def insrospect(foo, bar):
requested_module = makestringvariable(foo)
requested_object = makestringvariable(bar)
import requested_module
for item in inspect.getmemebers(requested_module.requested_object):
member = makestringvariable(item[0])
if callable(requested_object.member):
print item
if __name__ == '__main__':
introspect(somemodule, someobject)
所以在上面,因为我不知道在启动之前要自省哪个模块,我需要将字符串转换为可用的模块名称,并且因为getmembers() 将成员作为字符串返回,我还需要将它们转换为可用的变量名来检查它们是否可调用。
有makestringvariable()这样的函数吗?
【问题讨论】:
-
使用“object”作为变量名不是很好,因为它与Python2的“object”类型或Python3的“object”类冲突。
-
@everybody:感谢大家的精彩回答!
-
请,请,请搜索:stackoverflow.com/search?q=%5Bpython%5D+string+variable+name。这个问题——以这种字面形式——已经被问了数百次。
-
@S.Lott:我确实从昨天开始寻找这些并查看了 python 文档,但这里提出的问题是将变量名转换为字符串,而关于将字符串转换为变量名的一个问题是实际上是关于格式化字符串。感谢您的检查,如果您能指出一个问题,其内容回答了我的问题,我准备接受我的错误:)
-
@Benjamin:“但问题问[如何]将变量名转换为字符串”这显然是错误的。我猜你根本没有真正仔细阅读它们。例如,stackoverflow.com/questions/1009831/… 是重复的。
标签: python string variables module introspection