Configuring an object via a dictionary
dn
PythonList at DancesWithMice.info
Sun Mar 17 00:15:32 EDT 2024
On 17/03/24 12:06, Peter J. Holzer via Python-list wrote:
> On 2024-03-16 08:15:19 +0000, Barry via Python-list wrote:
>>> On 15 Mar 2024, at 19:51, Thomas Passin via Python-list <python-list at python.org> wrote:
>>> I've always like writing using the "or" form and have never gotten bit
>>
>> I, on the other hand, had to fix a production problem that using “or” introducted.
>> I avoid this idiom because it fails on falsy values.
>
> Perl has a // operator (pronounced "err"), which works like || (or),
> except that it tests whether the left side is defined (not None in
> Python terms) instead of truthy. This still isn't bulletproof but I've
> found it very handy.
So, if starting from:
def method( self, name=None, ):
rather than:
self.name = name if name else default_value
ie
self.name = name if name is True else default_value
the more precise:
self.name = name if name is not None or default_value
or:
self.name = default_value if name is None or name
because "is" checks for identity, whereas "==" and True-thy encompass a
range of possible alternate values?
--
Regards,
=dn
More information about the Python-list
mailing list