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

获取传递给函数的参数的列表/元组/字典?

闻人飞翼
2023-03-14
问题内容

赋予以下功能:

def foo(a, b, c):
    pass

如何在 不自己构建结构的情况下获得 传入参数的列表/元组/ dict / etc ?

具体来说,我在寻找Python版本的JavaScriptarguments关键字或PHPfunc_get_args()方法。


想要的是使用*argsor的解决方案**kwargs。我需要在函数定义中指定参数名称(以确保将其传递),但是在函数中,我想以列表或dict样式的结构使用它们。


问题答案:

您可以locals()用来获取函数中局部变量的字典,如下所示:

def foo(a, b, c):
    print locals()

>>> foo(1, 2, 3)
{'a': 1, 'c': 3, 'b': 2}

但是,这有点骇人听闻,因为它会locals()返回本地范围内的所有变量,而不仅是传递给函数的参数,因此,如果不在函数的顶部调用它,结果可能会包含比所需更多的信息。

def foo(a, b, c):
    x = 4
    y = 5
    print locals()

>>> foo(1, 2, 3)
{'y': 5, 'x': 4, 'c': 3, 'b': 2, 'a': 1}

如其他答案中所建议的那样,我宁愿在函数顶部构造一个字典或所需变量的列表。它更加明确,以更清晰的方式传达您的代码意图,恕我直言。



 类似资料:
  • 问题内容: 我想按值将列表传递给函数。默认情况下,列表和其他复杂对象通过引用传递给函数。这是一些目标: 可以写得短些吗?换句话说,我不想更改 ad 。 问题答案: 您可以使用,但是对于包含列表(或其他可变对象)的列表,您应该使用: 等价于或,并返回列表的浅表副本。 何时使用:

  • 我想从另一个作业中获取参数,就像我们从另一个作业中复制工件一样。 考虑2个詹金斯作业A和B。拉链制品。 我的要求:我希望作业B将所有参数传递给作业A中的构建#30。(我使用复制工件插件从作业A的#30复制.zip)如何从不同的jenkins作业获取参数?

  • C++ 数组 C++ 中您可以通过指定不带索引的数组名来传递一个指向数组的指针。 C++ 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。 如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。同样地,您也可以传递一个多维数组作为形式参数。 方式 1 形式参数是一个指针:

  • 问题内容: 是否可以使用反射API将参数传递给Java中的方法? 是否可以使用诸如AspectJ之类的AOP库来实现这一目标? 我在Android上运行。 。 问题答案: 是否可以使用诸如AspectJ之类的AOP库来实现这一目标? 当然可以。这是AspectJ中典型的初学者练习,如下所示: 现在,您只需要编写一个方面即可拦截所有方法执行(以及可选的构造函数执行,如下所示): 运行时,此方面将打印

  • 问题内容: 我想将字符串数组作为参数传递给函数。请看下面的代码 代替: 但是如果我这样做,我会收到一条错误消息,指出将其转换为。我想知道是否可以传递这样的值,或者正确的方法是什么? 问题答案: 怎么样:

  • 问题内容: 我正在使用Jenkins通过该命令远程运行Ansible剧本。 该命令: 应该触发构建后操作,以通过SSH远程执行以下命令: 是“作业通知”下的字符串参数,并且已对作业进行了参数化。我已经成功执行了类似的命令,但是由于值是一个列表,因此该命令失败了。我尝试了“字符串参数”和“多行字符串参数”都无济于事。 这是堆栈跟踪: 注意:这可能是如何通过远程访问api将数组传递给jenkins参数