Sono una persona di Java che ha appena iniziato ad imparare Python. Prendete questo esempio:Ereditarietà degli attributi in python usando __init__
class Person():
def __init__(self, name, phone):
self.name = name
self.phone = phone
class Teenager(Person):
def __init__(self, name, phone, website):
self.name=name
self.phone=phone
self.website=website
Sono sicuro che ci sono un sacco di codice ridondante (lo so in Java, ci sono un sacco di licenziamenti per il bit di codice di cui sopra).
Quali parti sono ridondanti rispetto a quali attributi sono già stati ereditati dalla classe padre?
Nota: se stai usando Python 2.x, devi esplicitamente elencare 'object' come una classe base di' Person' per usare 'super()'. Altrimenti, devi usare il modulo 'Person .__ init__'. – chepner
@chepner puoi fornire un riferimento per questo? Non riesco a trovarne uno – murgatroid99
http://docs.python.org/library/functions.html#super indica che super() è supportato solo su classi di nuovo stile, che in Python 2.x sono quelle che ereditano da 'object' – chepner