Python's "only one way to do it" philosophy isn't good?
Josiah Carlson
josiah.carlson at sbcglobal.net
Sun Jun 10 10:27:27 EDT 2007
More information about the Python-list mailing list
Sun Jun 10 10:27:27 EDT 2007
- Previous message (by thread): Python's "only one way to do it" philosophy isn't good?
- Next message (by thread): Python optimization (was Python's "only one way to do it" philosophy isn't good?)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Steven D'Aprano wrote: > On Sat, 09 Jun 2007 22:52:32 +0000, Josiah Carlson wrote: > >> the only thing that optimization >> currently does in Python at present is to discard docstrings > > Python, or at least CPython, does more optimizations than that. Aside from > run-time optimizations like interned strings etc., there are a small > number of compiler-time optimizations done. > > Running Python with the -O (optimize) flag tells Python to ignore > assert statements. Using -OO additionally removes docstrings. Oh yeah, asserts. I never run with -O, and typically don't use asserts, so having or not having either isn't a big deal for me. > Regardless of the flag, in function (and class?) definitions like the > following: > > def function(args): > "Doc string" > x = 1 > s = "this is a string constant" > "and this string is treated as a comment" > return s*x > > The string-comment is ignored by the compiler just like "real" comments. > (The same doesn't necessarily hold for other data types.) I would guess it is because some other data types may have side-effects. On the other hand, a peephole optimizer could be written to trim out unnecessary LOAD_CONST/POP_TOP pairs. > Some dead code is also optimized away: Obviously dead code removal happens regardless of optimization level in current Pythons. > Lastly, in recent versions (starting with 2.5 I believe) Python includes a > peephole optimizer that implements simple constant folding: Constant folding happens regardless of optimization level in current Pythons. So really, assert and docstring removals. Eh. - Josiah
- Previous message (by thread): Python's "only one way to do it" philosophy isn't good?
- Next message (by thread): Python optimization (was Python's "only one way to do it" philosophy isn't good?)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list