Python 变量默认值的快捷方式是另一个变量值(如果它是 None)

use*_*631 0 python python-3.x

我有以下函数声明:

def set_data(obj=None, name='delp', type=None):
Run Code Online (Sandbox Code Playgroud)

是否有一个 python 快捷方式,其中类型等于“名称”值(默认通过 r)如果是 None ?

Pet*_*per 5

通常的习语是:

def set_data(obj=None, name='delp', type=None):
    if type is None:
        type = name
Run Code Online (Sandbox Code Playgroud)

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

  • Sraw - 这在行为上并不相同。空字符串不是“None”,但它是 false,仅举一个例子。如果您想尽可能简洁,条件表达式 (https://docs.python.org/3/reference/expressions.html#conditional-expressions) 是一种选择。 (2认同)