问题标签 [keyword-argument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5052 浏览

python - 当局部变量名称与函数参数名称相同时将关键字参数传递给函数

有没有更简洁的方法来写这个?

背景:我有一个参数太多的函数

在我的程序中,我有命名与函数参数完全相同的局部变量。

我想用关键字参数调用函数。由于变量的名称相同,这就是调用的外观。

当然,我可以使用位置而不是像这样的关键字来传递参数

但是a, b, c, d,e只是本例中变量的名称,很容易看出正确的顺序。然而不幸的是,我的程序中的变量命名更复杂,没有容易辨别的自然顺序。所以我真的很喜欢按关键字传递它们以避免任何错误。

0 投票
1 回答
4785 浏览

django - Python:在包装函数中使用 *args、**kwargs

我正在为 Django 的 render_to_response() 编写一个包装函数来添加 CSRF 处理。

逻辑是:

render_to_response() 具有以下签名:

我想编写透明包装器 - 只需添加一些功能(前面提到过)并保留其他内容。我想我应该这样写:

所以问题是 - 从 args/kwargs 中提取所需参数(然后更改它)并进一步传递它的最佳实践是什么?

顺便说一句,render_to_response() 的代码让我觉得有点奇怪。这里是:

如果有人用所有位置参数调用它,所以 kwargs 将为空,但mimetype参数将被指定为最后一个位置参数怎么办?看起来在那种情况下它的行为是错误的。

0 投票
3 回答
11156 浏览

python - Python 约定 **kwargs vs **kwds vs **kw 是什么?

关键字参数是否有python命名约定?

0 投票
2 回答
13504 浏览

python-3.x - Python 3.2:如何将字典传递给 str.format()

我一直在阅读有关字符串格式的 Python 3.2 文档,但它并没有真正帮助我解决这个特殊问题。

这是我正在尝试做的事情:

上面的代码将不起作用,因为 format() 调用没有读取字典值并使用这些值代替我的格式占位符。如何修改我的代码以使用我的字典?

0 投票
1 回答
2857 浏览

boost-python - 如何将 kwargs 传递给 boost-python 包装函数?

我有一个带有这个签名的python函数:

我想从 c++ 调用该函数并将一些 kwargs 传递给它。调用函数不是问题。知道如何通过 kwargs 是。这是一个无效的释义示例:

当我练习这段代码时,我在 pdb 中得到(这不是我想要的):

您如何在 **kwargs 字典中传递我的示例中的选项?

我看到一篇帖子建议使用 **options 语法(这太酷了!):

不幸的是,这导致

感谢您提供的任何帮助。

0 投票
3 回答
1747 浏览

python - 如何在 Python 2 中将位置参数视为关键字参数

对于我正在编写的装饰器,我想操作函数的特定命名参数。考虑以下装饰器:

应用于下一个功能:

如果将股息作为关键字参数调用,这将起作用,例如:

但是,当作为位置参数给出时,这将失败。

使用 Python 3,我可以通过强制参数始终作为关键字给出来解决这个问题:

但我想支持 Python 2,并且我想对函数施加尽可能少的限制。

有没有办法可以在我的装饰器中修复这种行为?

0 投票
0 回答
551 浏览

python - Do Python's `*` and `**` specifiers have a name?

Possible Duplicate:
proper name for python * operator?

* is clearly used when unpacking an arbitrary number of arguments and

** is used when unpacking keyword arguments as a dictionary.

It is conventional to use *args and **kwargs, and I tend to pronounce these as "args" and "quargs", ignoring the *s.

In this question, the asterisk was referred to as a pointer.

How does the BDFL refer to these symbols?


Following closure.

Thanks for finding the linked question, this is what I was looking for. It's really tricky to search (even very specific areas of) the web accurately for *!

To the commentators who responded with how they pronounce "*", that was not the question I was asking (and apologies if my question mislead you). What I wanted to know is how these specifiers are named in Python, this was not a subjective question (hence the reference to the BDFL).

0 投票
2 回答
439 浏览

python - 以 Python 方式处理大量关键字参数

我有一个类,其_ init _函数需要相当多的关键字参数。我希望能够基本上重写这段代码,使其在语法上更清晰(更少的硬编码)。最好我希望能够得到它,以便简单地将关键字参数添加到_ init _将分别更改 null 函数中的所有属性/参数。

0 投票
1 回答
676 浏览

python - 装饰器python库隐藏args中的kwargs

我在装饰器库中遇到了一个非常奇怪的行为,下面的代码将对此进行解释:

此脚本的执行打印:

'decorator' 将 kwargs 隐藏在 args 中,我如何在不使用“自制”装饰器的情况下解决这个问题。

谢谢。

0 投票
5 回答
2360 浏览

python - Python 函数“记住”较早的参数 (**kwargs)

我有一些具有属性字典的对象,obj.attrs. 为方便起见,这些对象的构造函数接受 dict 和/或**kwargs

它看起来有点像这样:

这样Thing({'color':'red'})做与Thing(color='red').

我的问题是构造函数以某种方式记住attrs传递给它的最后一个值。

例如:

...但thing2.attrs应该只是一个空字典!{}

这让我想知道这是否不是同时使用 **kwargs 类似的参数的问题attrs={}

有任何想法吗?