[PIPython] Sorgenti personali

Giovanni Porcari giovanni.porcari
Gio 20 Gen 2005 20:33:52 CET


Il giorno 19/gen/05, alle 14:52, Giovanni Porcari ha scritto:

> Il giorno 19/gen/05, alle 12:36, Simone Cansella ha scritto:
>
>> Vi dò dei miei sorgenti che ho fatto per esercizio penso che ai 
>> vostri occhi siano scarsi per ciò datemi un voto.
>> Li ho convertiti  in txt per windows e quindi se avete Linux ci 
>> mettete l'estensione per python (anche se questo penso che lo 
>> sapevate già).
>>
>
> Caro Simone
> un suggerimento è quello di usare da subito python per come è pensato.
> Quindi, nonostante io stesso sia un novellino,
> mi permetto di modificare il tuo codice per farne una versione object 
> oriented.
> Se non capisci qualcosa....chiedi pure.
> Ciao
>

c'erano un paio di referenze ad 'a' invece che a 'self'...scusa.
ecco la versione corretta.
Ciao


----------------------------- Phonebook ----------------------------
class Phonebook(object):

     def __init__(self):
         self.menu=['Print Phone Numbers',
                     'Add Phone Number',
                     'Remove a Phone Number',
                     'Lookup a Phone Number',
                     'Quit'
                     ]

         self.implementors=[self.printPhoneNumbers,
                             self.addPhoneNumber,
                             self.removePhoneNumber,
                             self.lookupPhoneNumber,
                             self.stop
                             ]
         self.numbers={}

         self.running=True

     def run(self):
         while self.running:
             s=self.menuSelection('Type in a number')-1
             self.implementors[s]()

     def stop(self):
         print "Bye Bye"
         self.running=False

     def printMenu(self):
         for idx,value in enumerate (self.menu):
             print idx+1,'-',value

     def menuSelection(self,message='Select'):
         self.printMenu()
         m=len(self.menu)
         selection=m+1
         while selection >m:
             selection=input (message+' (1-%i):' % m)
         return selection

     def printPhoneNumbers(self):
         print "Telephone Numbers:"
         for x in self.numbers.keys():
             print "Name: ",x," \tNumber: ",self.numbers[x]
         print

     def addPhoneNumber(self):
         print "Add Name and Number"
         name = raw_input("Name:")
         phone = raw_input("Number:")
         self.numbers[name] = phone

     def removePhoneNumber(self):
         print "Remove Name and Number"
         name = raw_input("Name:")
         if name in self.numbers:
             del numbers[name]
         else:
             print name," was not found"

     def lookupPhoneNumber(self):
         print "Lookup a Number"
         name = raw_input ("Name:")
         if name in self.numbers:
             print "The Number is", numbers[name]
         else:
             print name," was not found"

if __name__ == '__main__':
     a=Phonebook()
     a.run()



More information about the Python mailing list