【问题标题】:Are you allowed to modify func_defaults (__defaults__ in Python 3.x) in Python?是否允许在 Python 中修改 func_defaults(Python 3.x 中的 __defaults__)?
【发布时间】:2012-11-26 21:58:12
【问题描述】:

我已经尝试在 Python 2.6 中执行此操作,并且它确实“有效”:

>>> def f(i='I'): return i
...
>>> f.func_defaults = (10,)
>>> f()
10

但这是官方指定的行为,还是我遇到了特定于实现的行为?

【问题讨论】:

  • 仅仅因为它有效并不意味着你应该真正它!

标签: python


【解决方案1】:

the documentation func_defaults 被记录为“可写”,因此它似乎是已定义的行为。

【讨论】:

  • 太棒了!文档还说这是 2.4 的新功能。
  • 这似乎在实践中也受到尊重:它适用于 IronPython 3.0.0、Jython 2.5.1+ 和 pypy-1.9.1。
  • @allyourcode:2.4 的新功能是func_name 是可写的,而不是func_defaults
猜你喜欢
  • 1970-01-01
  • 2021-01-29
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 2015-10-31
  • 1970-01-01
相关资源
最近更新 更多