Look over this code sample, it should be very explanatory:
# role of self in Python classes
# self can be named different, but 'self' is convention
class Snake:
def __init__(self, name):
# self keeps track of each instance
# and also makes self.name global to class methods
self.name = name
# test
print(self)
def isnice(self):
# a class method has self as the first argument
return self.name + " is very nice"
# create 2 instances of class Snake
bob = Snake('Bob Python')
mary = Snake('Mary Rattle')
print('-'*40)
# now you can get the name that has been assigned to self.name
print(bob.name)
print(mary.name)
# access the class method
print(mary.isnice())
"""my result -->
# self for each instance has a different location in memory
<__main__.Snake object at 0x01E0B2B0>
<__main__.Snake object at 0x01E0B090>
----------------------------------------
Bob Python
Mary Rattle
Mary Rattle is very nice
"""
Last edited by Ene Uran; Sep 5th, 2009 at 11:25 am.
Reputation Points: 625
Solved Threads: 211
Posting Virtuoso
Offline 1,704 posts
since Aug 2005