Patrick Maupin wrote: > This may or may not be relevant to 2.6 or 3.0 (because I don't have > those handy at the moment), but on 2.5 and earlier: > > Python 2.5.2 (r252:60911, May 7 2008, 15:19:09) > [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> print eval(compile('print "It works"\n', '', 'exec')) > It works > None In 3.0b2, print( eval(compile('print( "It works")\n', '', 'exec'))) does the same thing. So does print( exec(compile('print( "It works")\n', '', 'exec'))) and I presume the exec statement would in 2.x. > Personally, I'm absolutely fine with this (because I have a use case, > naturally), The only possible use I can think of would be is you are eval-ing mixed-kind code objects: def eval_and_go(cobj): # cobj = code object of whatever kind x = eval(cobj) if x is not None: # was not side-effect only return g(x) else: return None > but eval() does work differently for compiled vs > non-compiled objects, and this behavior doesn't match what the doc at > http://docs.python.org/lib/built-in-funcs.html says, namely "This > function can also be used to execute arbitrary code objects (such as > those created by compile()). In this case pass a code object instead > of a string. The code object must have been compiled passing 'eval' as > the kind argument." > > That doc statement is, itself, contradictory. How can it be an > "arbitrary code object" if it must have been compiled using 'eval'? > Perhaps all that is meant is "In order to return a result other than > None to eval's caller, the code object must have been compiled > passing 'eval' as the kind argument." > > So, either the code or the doc should be fixed. I would vote +1 for > fixing the doc to match the code, but then I'm the sort of > dysfunctional programmer who sometimes has a use-case for expressions > with side-effects. I filed a condensed version of this report, with my suggested added text, as http://bugs.python.org/issue3569 tjr
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4