В этом случае они одинаковы. None
является одноэлементным объектом (существует только один None
).
is
проверяет, является ли объект тем же объектом, а == просто проверяет, эквивалентны ли они.
Например:
p = [1]
q = [1]
p is q # False because they are not the same actual object
p == q # True because they are equivalent
Но поскольку существует только один None
, они всегда будут одинаковыми, и is
вернет True.
p = None
q = None
p is q # True because they are both pointing to the same "None"