On Thu, Aug 19, 2010 at 8:35 PM, Greg Ewing <greg.ew...@canterbury.ac.nz> wrote: > Nick Coghlan wrote: > >> Or else it's just an accident of implementation, since the AST doesn't >> actually *need* to distinguish those two cases. > > It doesn't seem to be an accident, because ast_for_slice() > goes out of its way to manufacture a Name node for the > missing argument. > > It doesn't seem to significantly simplify the compiler > either, because compiler_slice() could just as easily > treat it the same way as the other slice arguments and > emit an instruction to load None if it's missing. > > So it's a mystery. Perhaps it made life easier for some > earlier version of the compiler.
Ah, it's a 2.x-ism. The old compiler needed to know whether or not to try __get/set/delslice__ (yes for x[:], no for x[::]). With those magic methods gone, that would make it obsolete in 3.x, so x[::] should probably just be changed to generate the same AST as x[:] now. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com