从for循环中的字符串连接调用函数[Python]

2024-09-30 16:20:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几行将函数的结果添加到列表中。我试图把它变成一个循环,而不是连续的赋值行和append

到目前为止,我已经有了我想要的代码,我只是在努力将实际字符串转换为函数调用。我已经阅读了pocket python指南和其他各种python书籍,但仍然无法找到解决方案。在

    categories = ['Hours', 'Travel', 'Site', 'Date']
    indexloc == 0
    for i in categories:  
        func = 'v'+categories[indexloc]+' = Get'+categories[indexloc]
        indexloc += 1

我得到的结果很准确,只是不确定如何将它们转换为函数调用:

^{pr2}$

(为了澄清Get部分是函数调用)

我读过了 Calling a function of a module from a string with the function's name in Python 但我不知道这是否适用于我的情况

Python 2.7 razcrap@gmail.com 谢谢


Tags: 函数字符串代码in列表get指南function
1条回答
网友
1楼 · 发布于 2024-09-30 16:20:30

要调用函数,您需要对它有一些引用。由于您知道函数的名称,因此可以从局部变量中获取:

for category in categories:
    function = locals()['Get' + category]

    print 'v{} = {}'.format(category, function())

更好的方法是将类别名称映射到函数:

^{pr2}$

相关问题 更多 >