Chris Hengge wrote:
> On Wed, 2006-09-13 at 18:26 -0400, Kent Johnson wrote:

>> You have to distinguish between a method (a function that is part of a 
>> class definition) and a standalone function (not part of any class). 
>> Python allows both. Standalone functions don't have a 'self' parameter; 
>> class methods always do (you can give it a different name but if you 
>> omit it you will get a runtime error when you call the method).
>>
>> Kent
>>
> So just make sure I always declare self for methods (functions in
> classes)? Is this unique to python? or do some other languages already
> include self, and just hide it from the programmer? 

All the OO languages I know have a similar concept. Python is more 
explicit than most. Java has a 'this' variable that is magically defined 
in the scope of any method. For most accesses to member variables and 
methods you don't even have to specify 'this' - the language figures it 
out for you. Ruby uses a naming convention to refer to attributes inside 
a method (attribute names start with @)

One of the guiding principles of Python is "explicit is better than 
implicit" and the explicit declaration and use of 'self' is consistent 
with this.

Kent

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to