Recently I was working on some old code. One of my model methods was originally written such that if one parameter was set to the Python None type, a particular set of actions would occur. For some reason, I checked for None like this:
if parameter is None: do something
I started running into problems when the changes I was making started passing an empty string into the function rather than None.
My first thought was to cast the empty string to None like this:
if isinstance(parameter, str) and not parameter: parameter = None
After making the change and doing a bunch of testing, it occurred to me that
"" are both False in Python. In fact, if I changed my code to just test the
parameter itself (
if parameter: or
if not parameter:), I would be able to
handle any type of variable that was passed into the function.
Here's a list of what Python considers to be false.