Python 3K or Python 2.9?
Erik Jones
erik at myemma.com
Sat Sep 15 12:09:05 EDT 2007
On Sep 14, 2007, at 11:54 PM, David Trudgett wrote:
> TheFlyingDutchman <zzbbaadd at aol.com> writes:
>
>> The confusing way about the current Python method when you first
>> encounter it is
>> why is "self" being passed in when you write the function but not
>> when you call it. If the compiler is smart enough to know that
>>
>> a = MyClass()
>> a.SomeFunction(12)
>>
>> SomeFunction() has a "self" implicitly added to the parameter
>> list, it
>> seems that it should be smart enough to know that a function defined
>> in a class has a "self" implicitly added to the parameter list.
>
> Several languages use the "object.method(args)" form, which is
> syntactic
> sugar for "method(object, other_args)" which Ada, for instance, uses.
> Knowing this clears up half the confusion (the object /is/ passed as a
> parameter whichever syntax is used).
>
> The other half of the confusion is cleared up by considering that
> Python methods are ordinary functions that don't magically "know" in
> which "class" context they are executing: they must be told via the
> first parameter.
Yes, that is really the crux of the issue, though. While the former
may be syntactic sugar for the latter, once any syntactic sugar has
become prevalent enough, it becomes the expected norm and the latter
becomes clutter or, at best, awkward. It's something that really
just takes a little use until you get to the point where you don't
usually think of it but, every so often, the thought creeps in. I'm
not complaining, just pointing out if you step out of this particular
box, you'll realize that it really is a pointless one. Saying,
"because that's how Python does it" may be the only valid reason, but
that argument is about on par with a six year old's "just because...".
Erik Jones
Software Developer | Emma®
erik at myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)
Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com
More information about the Python-list
mailing list