javascript 参数对象的 python 版本 - 它存在吗?

2022-01-21 00:00:00 python function arguments javascript

在 JavaScript 中,每个函数都有一个特殊的 arguments 预定义对象,其中包含有关传递给函数调用的参数的信息,例如

函数测试() {var args = Array.prototype.slice.call(arguments);控制台.log(args);}

参数可以轻松转储到标准数组:

test()//[]测试(1,2,3)//[1, 2, 3]测试(你好",123,{},[],函数(){})//["hello", 123, Object, Array[0], function]

我知道在 Python 中我可以使用标准参数、位置参数和关键字参数(就像定义的 here) 来管理动态参数编号 - 但是有没有类似于 Python 中的 arguments 对象的东西?

解决方案

它在 python 中并不存在,但你可以调用 locals() 作为函数中的第一件事,此时它应该只有参数

p>

>>>定义 f(a,b):... args = locals()... 对于 arg,args.items() 中的值:...打印参数,值... 返回 a*b...

In JavaScript each function has a special arguments predefined objects which holds information about arguments passed to the function call, e.g.

function test() {
  var args = Array.prototype.slice.call(arguments);
  console.log(args);
}

arguments can be easily dumped to a standard array:

test()
// []

test(1,2,3)
// [1, 2, 3]

test("hello", 123, {}, [], function(){})
// ["hello", 123, Object, Array[0], function]

I know that in Python I can use standard arguments, positional arguments and keyword arguments (just like defined here) to manage dynamic parameter number - but is there anything similar to arguments object in Python?

解决方案

It doesnt exist as is in python but you can call locals() as the first thing in the function and at that point it should only have the arguments

>>> def f(a,b):
...    args = locals()
...    for arg, value in args.items():
...        print arg, value
...    return a*b
...

相关文章