为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取字符串并将其用作标识符来调用函数?

如何获取字符串并将其用作标识符来调用函数?

繁华开满天机 2023-12-12 21:30:12
我为我的课程创建了一个自动评分器,它使用命令行参数来调用该问题集的关联函数。我需要将命令行参数提取为字符串,然后将其用作函数调用。在示例中,我将字符串分配给 pset,然后调用 pset 并将 StudentFile 作为参数传递。问题在于解释器将其视为字符串而不是标识符。这是我的代码的图片if len(sys.argv) == 2:    try:        # find and store the file        studentFile = helpers.findInSubdirectory(sys.argv[1])        for i in studentFile.split('/'):            if i.endswith('.py'):                pset = i[:-3]        pset(studentFile)
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

一种不安全的方法是使用eval或查看globals()字典。稍微安全一点的方法是在字典中创建字符串到函数的映射,然后从映射中查找函数。


def foo():

    print('hi')


def bar():

    print('see you')


funs = { 'foo': foo, 'bar': bar }

funs['foo']()


查看完整回答
反对 回复 2023-12-12
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信