Imagine esto:El uso de super() en las clases anidadas
class A(object):
class B(object):
def __init__(self):
super(B, self).__init__()
Esto crea un error:
NameError: global name B is not defined.
He intentado A.B
, pero luego se dice que A
no está definido.
Actualización:
que he encontrado el problema.
que he tenido una clase como esta:
class A(object):
class B(object):
def __init__(self):
super(B, self).__init__()
someattribute = B()
En ese ámbito, A no está definido todavía.
el uso de Python 2.6, tanto 'AB', así como' self .__ class__', parecen trabajar. –
'A.B' funciona bien para mí. ¿Pero está seguro de que necesita herencia múltiple y 'super' aquí? No salte al mundo MI a menos que realmente lo necesite (generalmente no lo necesita). Si vas por ese camino, debes permitir y transferir '* args' y' ** kwargs' en tu '__init__'. – bobince
A no está definido en su propio bloque de clases, por lo que una variable de clase A ''inner = B()' no funcionará. – u0b34a0f6ae