Clojure 到 Python:str 中的可选元素,如 fn

Clojure to Python: optional element in str like fn

Clojure 版本:

(defn greeting [& [name]]
  (cond-> "Hello" name (str " " name))

朴素 Python 版本:

def greeting(name=None):
    if name is None:
        name = ''
    else: name = ' ' + name
    return 'Hello' + name

问题:如何使 python 版本更短更地道?

def greeting(name=''):
    return f'Hello {name}'.strip() 

如果使用 None 作为默认参数:

def greeting(name=None):
    return f'Hello {name}' if name else 'Hello'