python 判空 is None 和 if not None 对比

发布时间 2023-08-12 10:26:54作者: Jneeee

Thanks for comments.
I have tested the perform between these:

import timeit

def using_is_none(variable):
    return variable is None

def using_if_not_none(variable):
    return not variable

variable = None

print("Using 'is None':", timeit.timeit(lambda: using_is_none(variable), number=1000000))
print("Using 'if not None':", timeit.timeit(lambda: using_if_not_none(variable), number=1000000))

output:

jn@ubuntu:/code $ py311 /code/jupyter/test.py
Using 'is None': 0.09608164499513805
Using 'if not None': 0.057769965002080426

'if not None' have better performance(In the loop 1000000 times)

Compare to 'is None', use 'if not' have bonus:
Convert var='False', '0' and other empty data structure to set(), which respect the following legacy codes.

So I prefer to keep it.