For review: PEP 308 - If-then-else expression

Paul Rubin phr-n2003b at NOSPAMnightsong.com
Sat Feb 8 15:42:31 EST 2003


Dale Strickland-Clark <dale at riverhall.NOTHANKS.co.uk> writes:
> >An example:
> >
> >    def get_arg(self, default=1):
> >        """Return any prefix argument that the user has supplied,
> >        returning `default' if there is None.  `default' defaults
> >        (groan) to 1."""
> >        if self.arg is None:
> >            return default
> >        else:
> >            return self.arg
> 
> Yuck! An pointless function that boils down to:
> 
> self.arg or default
> 
> in current parlance.

Actually wrong.  

  self.arg or default

will incorrectly give the default, if self.arg is 0 or the empty
string or an empty dict, etc.  A conditional expression is really the
right thing here.




More information about the Python-list mailing list