dvalori = {"Asso":1,"Due":2,"Tre":3,"Quattro":4,"Cinque":5,"Sei":6,"Sette":7,"Otto":8,"Nove":9,"Dieci":10,"Jack":11,"Regina":12,"Re":13}
class carta:
def __init__ (ob,valore):
ob.valore = valore
def __cmp__ (ob1,ob2):
if dvalori[ob1.valore] > dvalori[ob2.valore]: return 1
if dvalori[ob1.valore] < dvalori[ob2.valore]: return -1
return 0
C1 = carta("Asso")
C2 = carta("Due")
print C1 < C2
Ciao ragazzi vorrei che qualcuno mi spiegasse una cosa molto banale. Ho iniziato da poco python e sto testando alcune funzioni. Ho ridefinito gli operatori di confronto con il metodo __cmp__ per poter confrontare l´attributo valore di due oggetti. Il risultato e´ giusto ossia C1 < C2 mi da vero ma non capisco come mi dia questo risultato. Cioe' il pc sa che sta controllando se C1 < C2 ma non sa se effettivamente C1 lo e' non essendo direttamente un valore numerico. Ho capito che il risultato dipende da return 1 e return -1 ma non ho compreso del tutto come sta elaborando i dati.