【问题标题】:python string to code for function arg?python字符串为函数arg编码?
【发布时间】:2011-06-21 13:06:02
【问题描述】:

我有一个函数名“myfunction”。我有一个字符串“a”,我需要将它传递给“myfunction”,所以它会给出与我的字符串是 python 对象名称相同的结果,myfunction(a) 所以我有

def myfunction(var):
    print var
a = 1
mystring = "a"

我需要将“mystring”传递给“myfuntion”,这样它的行为就像变量“a”被传递给它一样。 我想过这样的事情,但它不会起作用:

myfunction(exec(mystring))

PS。是的,我知道 exec() 的后果,请无需解释。

【问题讨论】:

    标签: python string function arguments exec


    【解决方案1】:

    应该是eval(),而不是exec

    myfunction(eval(mystring))
    

    或者:

    myfunction(locals()[mystring])
    

    如果你认为你需要这样的东西,很可能你有一个基本的设计问题。

    【讨论】:

      【解决方案2】:

      execeval 不需要:

      >>> def myfunc(var):
      ...     print globals()[var] * 2
      ...
      >>> a = 12
      >>> myfunc('a')
      24
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        • 1970-01-01
        • 1970-01-01
        • 2017-11-01
        相关资源
        最近更新 更多