This is a most excellent place for technology news and articles.
Doesn't matter what it implies. The entire purpose of programming is to make it so a human doesn't have to go do something manually.
not x tells me I need to go manually check what type x is in Python.
not x
x
len(x) == 0 tells me that it's being type-checked automatically
len(x) == 0
That's just not true:
[]
{}
list
dict
tuple
__len__
You can probably assume it's iterable, but that's about it.
But why assume? You can easily just document the type with a type-hint:
def do_work(foo: list | None): if not foo: return ...
Doesn't matter what it implies. The entire purpose of programming is to make it so a human doesn't have to go do something manually.
not x
tells me I need to go manually check what typex
is in Python.len(x) == 0
tells me that it's being type-checked automaticallyThat's just not true:
not x
- has an empty value (None, False,[]
,{}
, etc)len(x) == 0
- has a length (list
,dict
,tuple
, etc, or even a custom type implementing__len__
)You can probably assume it's iterable, but that's about it.
But why assume? You can easily just document the type with a type-hint: