Dies ist nur ein Beispiel von Noten (Python Objekte Basics)Bedingte Anweisung Python
class Cow():
noise = 'moo!'
def __init__(self, color):
self.color = color
print "This cow is " + self.color
def make_noise(self):
print self.noise
def set_color(self, new_color):
self.color = new_color
def get_color(self):
return self.color
def __cmp__(self, other):
if self.color == other.color:
return True
else:
return False
def __str__(self):
return self.color + ' ' + self._noise
blue_cow = Cow('blue')
red_cow = Cow('red')
blue_cow.make_noise()
print red_cow == blue_cow
blue_cow.set_color('red')
print red_cow == blue_cow
Dies ist der Ausgang nach dem Laufen:
moo!
True
False
Was habe ich nicht verstanden, warum ist (3 Zeile aus letzte)
print red_cow == blue_cow
Wahr geben, während es false (meiner Ansicht nach geben), da red_cow hat rote Farbe und blue_cow hat blaue annehmen ist Farbe
Und die letzte Zeile zwei Zeilen
blue_cow.set_color('red')
print red_cow == blue_cow
Und die letzte Zeile, warum es meiner Meinung nach auf False während ausführt ich es erwarten __cmp__
auf True auszuführen
Verwenden Sie '__eq__' anstelle von' __cmp__'. – Fejs