Attack a sacred Python Cow
Michael Torrie
torriem at gmail.com
Mon Jul 28 04:56:29 EDT 2008
Nikolaus Rath wrote:
> No, but it could work like this:
>
> def a(x, y):
> self.x = x
> self.y = y
>
Frankly this would make reading and debugging the code by a third party
to be a nightmare. Rather than calling the variable self as I did in my
example, I could it in a much better way:
def method(my_object, a, b):
my_object.a = a
my_object.b = b
Now if I saw this function standalone, I'd immediately know what it was
doing. In fact, I can even unit test this function by itself, without
even having to know that later on it's monkey-patched into an existing
class.
With your idea, I might get the picture this function should be used as
a method in some object because of the self reference, but I can't test
the method by itself. Trying to call it would instantly result in an
exception. And if this was a large function, I might not even see the
self reference right away.
More information about the Python-list
mailing list