[Python] diversi __init__ ??

Enrico Franchi enrico.franchi a gmail.com
Mar 29 Gen 2008 21:15:15 CET


On Jan 29, 2008, at 8:12 PM, Alessandro Dentella wrote:

> Mi pare che sia normalissimo fare overloading come questo
>
> class A(object):
>      def __init__(self):
>          pass
>
> class B(A):
>      def __init__(self):
>          print 'OK'
>
> Stai dicendo che non è abitudine fare questo in python? Avrei parecchi
> controesempi...

Sto dicendo che quello *non* si chiama overloading. L'overloading è  
interno alla stessa classe, l'overriding invece è relativo al  
subclassamento. Sono concetti distinti. In C++ poi ci si diverte  
moltissimo perchè si intrecciano in modo scarsamente ortogonale le  
regole di risoluzione *e* i parametri di default. Per cui conviene  
conoscere *molto* bene la semantica.

Fai comunque conto che l'inglese ti viene incontro; vai a vedere su un  
dizionario e ti sarà chiaro come 'overload' non rende l'idea di quello  
che fai (mentre override si).


> vorresti con questo dire che sia più elegante pensare *a priori* in  
> quali
> modi la gente vorrà ereditare la nostra classe? (ed infilare 100  
> parametri
> nella funzione).

Assolutamente *no*.  Ma ribadisco, tu confondi overload con override.



More information about the Python mailing list