POO operadors 2

De Cacauet Wiki
Revisió de 18:34, 31 oct 2013; Enric (Discussió | contribucions)

(dif) ←Versió més antiga | Versió actual (dif) | Versió més nova→ (dif)
Dreceres ràpides: navegació, cerca

Un altre exemple de POO: operadors el tindriem amb aquesta classe Client.

Fixa't en què:

  • redefinim l'operador __lt__ (less than)
  • afegim el mètode __repr__ que permet fer un print de l'objecte (molt pràctic per fer print de llistes d'objectes).
  • en el main creem una llista de clients i la ordenem d'acord amb el nou operador.


#!/usr/bin/python
# -*- coding: utf-8 -*-
 
from random import randint
 
class Client():
    nom = ""
    nif = ""
    despesa = 0
 
    def __lt__(self,cli):
        return self.despesa < cli.despesa
 
    def __repr__(self):
        return str(self.nom)+"("+str(self.despesa)+"€)"
 
 
clients = []
noms = ["Pere","Joan","Lluc","Sònia","albert","Laura"]
 
for nom in noms:
    c = Client()
    c.nif = "0000000X"
    c.nom = nom
    c.despesa = randint(0,10000)
    clients.append(c)
 
print "CLIENTS"
print clients
 
print "\nORDENATS"
clients.sort()
print clients