Am 04.08.2010 17:37, schrieb Alex Hall:
It worked, thanks. Is there a list of these functions somewhere? That
is, the functions that map implicitly to operators or implied uses?
For example, printing will call __str__, as will a cal to str(). What
about math or comparison operators? I have heard of __eq__, __gt__,
and so on, but I tried to implement one and I got an error saying that
it required three arguments. It did, but only because the first was
self. I put the function inside my card class:
def __eq__(self, card1, card2):
return(card1.rank==card2.rank)
#end def __eq__
For some reason it is still looking for three arguments...
The official list of all special methods can be found at the datamodel
description, chapter 3.4:
http://docs.python.org/reference/datamodel.html#special-method-names
Most Python books also have some explanations about this. Maybe the nice
online book "Dive into Python" has a chapter? (I didn't check...)
Regarding your problem: I've flew very fast over the docs. __eq__ seems
to expect two arguments (self, other). So probably your method of the
card class should look like:
def __eq__(self, card2):
return(self.rank==card2.rank)
Cheers,
Jan
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor