代码之家  ›  专栏  ›  技术社区  ›  Никита Шишкин

如何从字符串(Python3)创建函数[已关闭]

  •  -3
  • Никита Шишкин  · 技术社区  · 6 年前

    大家好。

    我的程序应该通过 stdin 以特定格式,如:

    "define f1 3 + 5"
    

    通过获取此命令,我的程序应该创建一个名为“f1”的函数,该函数将返回操作“3+5”。

    我怎样才能意识到这一点?

    1 回复  |  直到 6 年前
        1
  •  1
  •   jpp    6 年前

    您应该使用字典来存储具有给定名称的函数。通常,您不应该从字符串创建函数名。

    您可以使用 ast.literal_eval 安全地评估作为字符串提供的计算。

    以下是一个示例:

    from ast import literal_eval
    
    mystr = input('Enter a calculation:\n')
    # 'define f1 3 + 5'
    
    _, name, calc = mystr.split(None, 2)
    
    d = {name: literal_eval(calc)}
    
    print(d['f1'])  # 8