I'd note you can also save 4 characters by writing:

instead if expr is None else expr


On Fri, Sep 9, 2016 at 1:10 PM, David Mertz <me...@gnosis.cx> wrote:

> This idea has come up before.  While I can see the use of it, to me at
> least that use doesn't feel nearly common enough to warrant dedicated
> syntax.
>
> In many cases, it is a "truthy" value you are looking for rather than `is
> not None` specifically.  That has a convenient spelling:
>
> expr or instead
>
>
> If it really is the actual None-ness you are curious about, you need the
> slightly longer:
>
> expr if expr is not None else instead
>
>
> Your example seems to want to fall back to a statement suite rather than a
> value.  To do that, you'd have to put the suite inside a function such as:
>
> def Raise(err):
>
>     raise err
>
>
> And use it something like:
>
> self.totalsizeof or Raise(SizeofError(...))
>
>
> On Fri, Sep 9, 2016 at 1:01 PM, Arek Bulski <arek.bul...@gmail.com> wrote:
>
>> Sometimes I find myself in need of this nice operator that I used back in
>> the days when I was programming in .NET, essentially an expression
>>
>> >>> expr ?? instead
>>
>> should return expr when it `is not None` and `instead` otherwise.
>>
>> A piece of code that I just wrote, you can see a use case:
>>
>>     def _sizeof(self, context):
>>         if self.totalsizeof is not None:
>>             return self.totalsizeof
>>         else:
>>             raise SizeofError("cannot calculate size")
>>
>> With the oprator it would just be
>>
>>     def _sizeof(self, context):
>>         return self.totalsizeof ?? raise SizeofError("cannot calculate
>> size")
>>
>>
>>
>> pozdrawiam,
>> Arkadiusz Bulski
>>
>>
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas@python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
>
>
> --
> Keeping medicines from the bloodstreams of the sick; food
> from the bellies of the hungry; books from the hands of the
> uneducated; technology from the underdeveloped; and putting
> advocates of freedom in prisons.  Intellectual property is
> to the 21st century what the slave trade was to the 16th.
>



-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to