En python 3.5.2, la hiérarchie de la classe suivante:python trois sous-classes en cas de classe interne
class Foobaz(object):
def __init__(self):
pass
class Foo(object):
def __init__(self):
pass
class Baz(Foobaz):
class Bar(Foo):
def __init__(self):
super(Bar, self).__init__()
def __init__(self):
super(Baz, self).__init__()
self.bar = self.Bar()
if __name__ == '__main__':
b = Baz()
instancier les rendements de classe Baz
super(Bar, self).__init__()
NameError: name 'Bar' is not defined
ayant une classe interne sous-classé directement à partir de l'objet - c'est-à-dire, pas d'appel à super - c'est très bien. Je n'ai aucune idée pourquoi. Quelqu'un peut-il l'expliquer s'il vous plaît?
Super, merci. Cela va rendre ma vie plus facile. Mais lequel de ces deux moyens est préférable? – jake77
Si vous écrivez un code qui tente d'être agnostique, utilisez le premier. Si vous n'allez pas avec le second. –
Supprimer le commentaire sur 'idéalement'. Utiliser 'type (self)' dans super est une grosse erreur! – wim