【问题标题】:Is it always safe to pass empty dict as keywords argument?将空字典作为关键字参数传递是否总是安全的?
【发布时间】:2012-07-26 19:56:56
【问题描述】:

有没有什么情况

f(arg1, arg2..., argN)

工作并产生结果并且

f(arg1, arg2..., argN, **{} )

产生不同的结果,还是导致错误?

我假设 **kwds 尚未出现在参数列表中。

上下文是我正在编写一个包含函数及其参数的函子 供以后评估,并希望支持可选关键字。

【问题讨论】:

    标签: python argument-passing


    【解决方案1】:

    是的,这样做总是安全的。这两个调用是完全等价的,函数f()没有办法区分(当然除了自省源代码)。

    【讨论】:

    • dict 的可变性在这里不重要吗?
    • @inspectorG4dget:不会,传入前会被复制。
    • 谢谢,我想如果 f 在 c 中实现可能会发生一些奇怪的事情
    • @Dave:不,即使那样。在内部,函数将在 both 情况下传递一个空的关键字参数字典。
    猜你喜欢
    • 2018-11-14
    • 2010-09-24
    • 2019-12-03
    • 1970-01-01
    • 2015-04-18
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多