测试对象是否为 None 并分配它

如果对象是 None,则通常需要为对象指定一些内容,表示尚未分配对象。我们将使用 aDate

最简单的方法是使用 is None 测试。

if aDate is None:
    aDate=datetime.date.today()

(注意说 is None 而不是 == None 更像 Pythonic。)

但是,通过利用 not None 将在布尔表达式中评估为 True 的概念,可以略微优化这一点。以下代码是等效的:

if not aDate:
    aDate=datetime.date.today()

但是有更多的 Pythonic 方式。以下代码也是等效的:

aDate=aDate or datetime.date.today()

这是一个短路评估 。如果 aDate 被初始化并且是 not None,则它被分配给自己而没有净效应。如果它是 is None,则 datetime.date.today() 被分配给 aDate