【问题标题】:Function argument's default value equal to another argument [duplicate]函数参数默认值等于另一个参数[重复]
【发布时间】:2015-11-04 17:03:05
【问题描述】:

是否可以将函数参数的默认值定义为同一函数定义中的另一个参数?比如:

def func(a, b=a):
  print a, b

但这没有用。

【问题讨论】:

  • 为什么不在函数的第一行将a赋值给b
  • 你不能这样做,你需要先b=None 然后if b is None: b = a。请参阅stackoverflow.com/q/4575326/3001761(如果您搜索过这个,您可能很容易找到它......)

标签: python function arguments default


【解决方案1】:

没有。这是不可能的。当没有全局变量a 时,Python 解释器认为您想将参数b 的默认值分配给全局变量a

你可能想尝试这样的事情:

def func(a, b=None):
    if b is None:
        b = a

【讨论】:

  • 这不允许只传递一个变量
  • @EthanBierlein “优秀的 SO 贡献者可以做出的最佳响应是搜索重复项” - 即,而不是回答。
猜你喜欢
  • 2015-11-05
  • 2019-08-25
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 1970-01-01
  • 2014-02-10
相关资源
最近更新 更多