[Python-Dev] "and" and "or" operators in Py3.0
Raymond Hettinger
raymond.hettinger at verizon.net
Tue Sep 20 06:57:17 CEST 2005
More information about the Python-Dev mailing list
Tue Sep 20 06:57:17 CEST 2005
- Previous message: [Python-Dev] "and" and "or" operators in Py3.0
- Next message: [Python-Dev] "and" and "or" operators in Py3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> > 3) Even when it isn't being used, the possibility of non-boolean return > > value complicates the bytecode and parser. To allow for "and/or", the > > conditional opcodes leave the tested value on the stack. In most cases > > both branches go directly to a POP_TOP instruction. Since the POP_TOP > > shouldn't be executed twice, the body of the positive branch has to > > close with a jump over the other branch even when it is empty. > > The solution to that is for the normal conditional opcodes > to pop the stack, and to introduce separate bytecodes for > implementing 'and' and 'or'. You're right. The bytecode code be fixed-up right now with no change to the language :-) That leaves error reduction and clarity as the main motivations for changing 'and' and 'or' to act like '&&' and '||' and for introducing a conditional operator to handle everyone's favorite use cases. Raymond
- Previous message: [Python-Dev] "and" and "or" operators in Py3.0
- Next message: [Python-Dev] "and" and "or" operators in Py3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list