【问题标题】:Python shortcut for variable default value to be another variable value if it is None [duplicate]变量默认值的Python快捷方式是另一个变量值,如果它是无[重复]
【发布时间】:2019-02-20 16:25:07
【问题描述】:

我有以下函数声明:

def set_data(obj=None, name='delp', type=None):

是否有 python 快捷方式,其中 type 等于 'name' 值(默认 r 传递)如果是 None ?

【问题讨论】:

  • 请不要使用reserved words,为了您自己(可能还有其他使用您的代码的人),请:)

标签: python python-3.x


【解决方案1】:

通常的成语是:

def set_data(obj=None, name='delp', type=None):
    if type is None:
        type = name

(但实际上不要使用type 作为变量名,它会屏蔽内置函数,如下所述:Is it safe to use the python word "type" in my code?

【讨论】:

  • 可能只是type = type or name
  • @Sraw 请注意,如果变量是 any false-y 值,这将分配默认值,而不仅仅是 None
  • Sraw - 这在行为上并不相同。空字符串不是None,但它是假的,仅举一个例子。如果您想尽可能简洁,条件表达式 (docs.python.org/3/reference/…) 是一种选择。
  • @PeterDeGlopper 正确,但这里的类型似乎是一个字符串。而且只有两种假值:空字符串或None。这可能就足够了。虽然我承认这对于许多其他情况来说是不够的。
  • @Sraw 等价的一个衬里将是 type = name if type is None else type
猜你喜欢
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 2020-11-21
  • 2019-05-13
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多