def process(data=None):
# WRONG: if not data# This also catches empty list [], 0, and ""ifnot data:
print("No data") # Triggered by empty list too!# CORRECT: if data is Noneif data is None:
print("Data is None")
process([]) # Might not intend to reject []
process(None)
process(0)
output
No data
No data
Data is None
No data
Note Empty collections, zero, empty string, and None are all falsy. When you specifically mean 'no value provided', check 'is None' rather than relying on truthiness.