当前位置: 首页 > 面试题库 >

python获取函数中参数的变量名

慕烨烁
2023-03-14
问题内容

我想做这样的事情:

fib = 1
foo = (arg):
    print arg, argName # the name of the variable that was put in for arg
foo(fib)

并得到返回:

1, fib

问题答案:

您不能那样做(正如Ignacio Vazquez-Abrams已经回答的那样),但是您可以通过类似的方式来做:

>>> def foo(**kwargs):
    for arg_name in kwargs:
        return kwargs[arg_name], arg_name


>>> foo(fib=1)
(1, 'fib')

唯一的区别是您必须使用关键字参数,否则它将不起作用。

另一种解决方案是访问 __name__传递的变量的属性,这将导致获得函数,类或名称的名称(或其他将定义此名称的名称)。您唯一应该知道的是,默认情况下,它不是变量的名称,而是函数/类/模块的原始名称(定义时分配的名称)。请参阅此处的示例: http
//ideone.com/MzHNND


 类似资料:
  • 对不起,我不知道这个问题的标题是什么。 我在C中有一个函数,它以λ作为参数。 然后我尝试调用这个函数。 我的问题是,我无法从lambda函数内部访问变量,如果我试图用

  • 问题内容: 有没有一种简单的方法可以进入python函数并获取参数名称列表? 例如: 谢谢 问题答案: 好吧,我们实际上不需要这里。 对于Python 2.5及更高版本,请使用代替和代替。

  • 我被迫在getJSON回调函数中使用该函数之外的数据。看一看: 这就是我尝试的,但是失败了,$值仍然设置为0,尽管在回调中它肯定设置为实际值。我知道为什么它会失败,因为AJAX请求是异步发送的。问题是,正确的方法,做回调里面的一切,是不可能的。如你所见,我需要在raty(插件)设置中检索JSON对象。我只会使用$. ajax()并将其设置为同步,但留档将其标记为1.8不建议使用。我宁愿不引入一个我

  • 我了解在ES6中arrow函数是如何工作的,词法也是如此,但我想知道是否有人知道将参数传递给arrow函数的方法? 在ES5中,您可以简单地执行以下操作: 但是,在ES6中,如果使用箭头函数,如下所示: 变量返回一个对象,该对象与参数非常接近。 所以,我想知道是否有人有办法将参数传递给arrow函数? 我想也许我应该给一些关于我试图完成的事情的信息,也许如果上面的不可能,有人有更好的主意。 基本上

  • 以下是我正在努力做的: 在WordPress中,我通过wp_localize_script()将一个变量从php传递到外部javascript文件,这部分似乎可以工作,但我想在jQuery函数中使用变量值作为键控参数。 使用alert,正确的值似乎被传递给javascript,但我不知道如何在函数的参数中引用它们。(特别是WideSliderParams.slideshow和speed。) 这里是

  • 问题内容: 是否可以获取传递给函数的变量的原始变量名?例如 以便: 返回值: 编辑: 我想要做的就是使一个函数像: ..并让函数根据传递给它的变量的名称生成文件名。 我想如果不可能的话,我只需要每次将变量和变量名作为字符串传递。 问题答案: 你不能 在传递给函数之前先对其进行评估。您所能做的就是将它作为字符串传递。