PEP 308: A PEP Writer's Experience
David Eppstein
eppstein at ics.uci.edu
Mon Feb 10 16:20:21 EST 2003
More information about the Python-list mailing list
Mon Feb 10 16:20:21 EST 2003
- Previous message (by thread): PEP 308: A PEP Writer's Experience - PRO
- Next message (by thread): PEP 308: A PEP Writer's Experience - PRO
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <mailman.1044904883.10775.python-list at python.org>, holger krekel <pyth at devel.trillke.net> wrote: > People using the ternary-op may easily fail to realize > that the idiom isn't the right one all the time. For example, > it might prevent people from learning about the specific pythonic > behaviour of and/or returning the "short-circuiting" object. > Subsequently > > result = hasattr(obj, 'method') and obj.method() > > is not obvious to them but > > result = obj.method() if hasatttr(obj, 'method') else None > > is I fail to see why forcing people to avoid an idiom that's obvious to them (because it's not the "right" one) is a benefit to their productivity or the readability of their code. In my own case, although I can see that your use of "and" is shorter, I think that the if-else is better. At first glance, if I see "x and y", it looks like x is one possible desired expression value, while here hasattr() makes no sense as something to store into result, so the second version looks more meaningful. Analyzing the code more carefully, I see that the two lines are different, and it seems likely that "None" is preferred to "False" for the result in the case when the obj does not have the attr. -- David Eppstein UC Irvine Dept. of Information & Computer Science eppstein at ics.uci.edu http://www.ics.uci.edu/~eppstein/
- Previous message (by thread): PEP 308: A PEP Writer's Experience - PRO
- Next message (by thread): PEP 308: A PEP Writer's Experience - PRO
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list