赋予以下功能:
def foo(a, b, c):
pass
如何在 不自己构建结构的情况下获得 传入参数的列表/元组/ dict / etc ?
具体来说,我在寻找Python版本的JavaScriptarguments
关键字或PHPfunc_get_args()
方法。
我 不
想要的是使用*args
or的解决方案**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参数