all() is slow?
Ethan Furman
ethan at stoneleaf.us
Thu Nov 10 13:43:32 EST 2011
Devin Jeanpierre wrote:
> Well. It reads fine in a certain sense, in that I can figure out
> what's going on (although I have some troubles figuring out why the
> heck certain things are in the code). The issue is that what's going
> on is otherworldly: this is not a Python pattern, this is not a normal
> approach. To me, that means it does not read fine.
Certainly it's a Python pattern -- it's what you do to dynamically
generate code.
> The use of exec also results in (seemingly) arbitrary constraints on
> the input. Like, why can't "--" be a name? Because exec? Is there some
> other reason?
'--' not being allowed for a name has *nothing* to do with exec, and
everything to do with `--` not being a valid Python identifier.
> '--' is a valid attribute name on virtually any object that supports
> attribute setting (e.g. function objects). Of course, you need to use
> setattr() and getattr(). Is this really the reason, or is it a
> limitation caused primarily by the usage of exec and the need to
> prevent code injection? If somebody added this feature later on, would
> this create a security vulnerability in certain projects that used
> namedtuple in certain ways?
So you think
somevar = getattr(my_named_tuple, '--')
is more readable than
somevar = my_named_tuple.spam
?
~Ethan~
More information about the Python-list
mailing list