Nombre de modulos heredados

Xavier Noria fxn en hashref.com
Mie Mayo 18 08:44:29 CEST 2005


On May 18, 2005, at 0:43, Ezequiel Foncubierta wrote:

> Hola,
>
> veamos. Tengo una clase A en un módulo A, que hereda de una clase B en
> un módulo B. Ésta clase B, a su vez, hereda de una clase C en un  
> módulo
> C.
>
> El problema, es que C ejecuta __init__ y no se como sacar el nombre de
> la clase que está ejecutando ese __init__.
>
> Supongamos que tengo una clase D en un módulo D, que también hereda de
> B, como la clase A. ¿Como puedo saber desde C.__init, que clase ha  
> sido

El self que se pasa a C.__init__ ya lo creo Python del tipo que toca:

% cat foo.py
class Foo:
     def __init__(self):
         print "in Foo", self.__class__
% cat bar.py
import foo

class Bar(foo.Foo):
     pass
% cat baz.py
import bar

class Baz(bar.Bar):
     pass
% python
Python 2.4.1 (#1, Mar 30 2005, 16:23:57)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
 >>> import baz
 >>> baz.Baz()
in Foo baz.Baz
<baz.Baz instance at 0x38f0f8>

-- fxn



Más información sobre la lista de distribución Python-es