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/