<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://es.wikieducator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://es.wikieducator.org/index.php?action=history&amp;feed=atom&amp;title=Usuario%3ALmorillas%2Fmodulo_programacion%2Fpython%2Fintro_clases</id>
		<title>Usuario:Lmorillas/modulo programacion/python/intro clases - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://es.wikieducator.org/index.php?action=history&amp;feed=atom&amp;title=Usuario%3ALmorillas%2Fmodulo_programacion%2Fpython%2Fintro_clases"/>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;action=history"/>
		<updated>2026-06-19T06:54:32Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.23.14</generator>

	<entry>
		<id>https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;diff=7162&amp;oldid=prev</id>
		<title>Lmorillas en 09:44 25 ene 2012</title>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;diff=7162&amp;oldid=prev"/>
				<updated>2012-01-25T09:44:09Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión de 09:44 25 ene 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 183:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 183:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{/ejercicio dado}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{/ejercicio dado}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Más ejercicios ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[/ejercicios clases | Ejercicios clases y poo]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lmorillas</name></author>	</entry>

	<entry>
		<id>https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;diff=6688&amp;oldid=prev</id>
		<title>Lmorillas en 09:14 7 dic 2011</title>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;diff=6688&amp;oldid=prev"/>
				<updated>2011-12-07T09:14:51Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión de 09:14 7 dic 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 177:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 177:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Invocado desde la clase &amp;lt;class '__main__.ObjetoHijo'&amp;gt; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Invocado desde la clase &amp;lt;class '__main__.ObjetoHijo'&amp;gt; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Ejercicios ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{/ejercicio boton}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{/ejercicio dado}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lmorillas</name></author>	</entry>

	<entry>
		<id>https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;diff=6632&amp;oldid=prev</id>
		<title>Lmorillas: Página creada con '{{DISPLAYTITLE:Clases y Objetos}}  == ¿Qué son? == * Un objeto es una entidad que agrupa un estado y una funcionalidad relacionadas.  * En Python un objeto es un conjunto de a…'</title>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Usuario:Lmorillas/modulo_programacion/python/intro_clases&amp;diff=6632&amp;oldid=prev"/>
				<updated>2011-12-02T08:51:25Z</updated>
		
		<summary type="html">&lt;p&gt;Página creada con &amp;#039;{{DISPLAYTITLE:Clases y Objetos}}  == ¿Qué son? == * Un objeto es una entidad que agrupa un estado y una funcionalidad relacionadas.  * En Python un objeto es un conjunto de a…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:Clases y Objetos}}&lt;br /&gt;
&lt;br /&gt;
== ¿Qué son? ==&lt;br /&gt;
* Un objeto es una entidad que agrupa un estado y una funcionalidad relacionadas. &lt;br /&gt;
* En Python un objeto es un conjunto de atributos&lt;br /&gt;
* Una clase permite crear nuevos objetos que comparten los mismos atributos&lt;br /&gt;
* Muy importantes para optimizar/reutilizar mejor el código&lt;br /&gt;
&lt;br /&gt;
En Python todo son objetos&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print (123).__class__&lt;br /&gt;
print zip.__class__&lt;br /&gt;
print list.__class__&lt;br /&gt;
import os ; print os.__class__&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y todo objeto tiene una clase.&lt;br /&gt;
&lt;br /&gt;
== Clase = Arquetipo del objeto. ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class Estudiante(object):&lt;br /&gt;
    def __init__(self, nombre, edad):&lt;br /&gt;
        self.nombre = nombre&lt;br /&gt;
        self.edad = edad&lt;br /&gt;
maria = Estudiante('María', 19)&lt;br /&gt;
print maria.nombre &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==self==&lt;br /&gt;
Explícitamente hay que usar el '''self''' al definir las  clases en Python. Se refiere a la instancia concreta del objeto. Aparecerá como primer parámetro en la definición de los métodos.&lt;br /&gt;
Pero no se usa al llamar a las clases o a los métodos. De forma automática, Python pasa la instancia del objeto.&lt;br /&gt;
&lt;br /&gt;
== Clase = función==&lt;br /&gt;
* Al ejecutar clase se produce un nuevo valor.&lt;br /&gt;
* El objeto tiene los mismos atributos que la clase salvo el operador ()&lt;br /&gt;
* Inicializa el objeto con el método '''__init__'''&lt;br /&gt;
** Le pasa objeto + parámetros a la clase.&lt;br /&gt;
&lt;br /&gt;
== Métodos ==&lt;br /&gt;
=== Un método es una función asociada a un objeto===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Estudiante(object):&lt;br /&gt;
    def __init__(self, nombre, edad):&lt;br /&gt;
        self.nombre = nombre&lt;br /&gt;
        self.edad = edad&lt;br /&gt;
    def saluda(self):&lt;br /&gt;
        return 'Hola, me llamo %s' % self.nombre&lt;br /&gt;
&lt;br /&gt;
maria = Estudiante('María', 19)&lt;br /&gt;
print maria.saluda()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Primer parametro es la instancia.&lt;br /&gt;
* self por convención&lt;br /&gt;
* Todas las clases heredan de object&lt;br /&gt;
* Los atributos pueden añadirse, borrarse, modificarse, en cualquier momento&lt;br /&gt;
* En Python todo es público&lt;br /&gt;
* Por convención, lo privado empieza por '''_'''&lt;br /&gt;
  Ejemplo: self._atributo&lt;br /&gt;
* ¡Python no es Java!: '''No &amp;quot;setters&amp;quot; y &amp;quot;getters&amp;quot;'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
maria.edad += 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Método __init__ ===&lt;br /&gt;
Es un método opcional. Se usará cuando hay que inicializar datos.&lt;br /&gt;
&lt;br /&gt;
=== Herencia===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Base (object):&lt;br /&gt;
    def method(self):&lt;br /&gt;
	print &amp;quot;base.method()&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Deriv (Base):&lt;br /&gt;
    def method ( self ):&lt;br /&gt;
        print &amp;quot;deriv.method()&amp;quot;&lt;br /&gt;
     def other (self):&lt;br /&gt;
        print &amp;quot;deriv.other()&amp;quot; # método añadido&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Si el padre necesitaba parámetros, hay que llamar a su método '''__init__'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Persona(object):&lt;br /&gt;
    def __init__(self, nombre):&lt;br /&gt;
        self.nombre = nombre&lt;br /&gt;
&lt;br /&gt;
class Estudiante(Persona):&lt;br /&gt;
    def __init__(self, nombre, curso):&lt;br /&gt;
        super(Estudiante, self).__init__(nombre)&lt;br /&gt;
        self.curso = curso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos especiales ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
  __init__(self, ...)&lt;br /&gt;
  __new__(cls, args)&lt;br /&gt;
  __del__(self)&lt;br /&gt;
  __str__(self)&lt;br /&gt;
  __cmp__(self, otro)&lt;br /&gt;
  __len__(self)&lt;br /&gt;
  __getitem__(self, key)&lt;br /&gt;
  __setitem__(self, key, valor)&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Estudiante(object):&lt;br /&gt;
    def __init__(self, nombre, edad):&lt;br /&gt;
        self.nombre = nombre&lt;br /&gt;
        self.edad = edad&lt;br /&gt;
    def saluda(self):&lt;br /&gt;
        return 'Hola, me llamo %s' % self.nombre&lt;br /&gt;
    def __str__(self):&lt;br /&gt;
        return self.nombre&lt;br /&gt;
    def __repr__(self):&lt;br /&gt;
        return self.nombre&lt;br /&gt;
    def __cmp__(self, per):&lt;br /&gt;
        '''p es otro objeto de tipo persona'''&lt;br /&gt;
        return cmp(self.nombre, per.nombre)&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    maria = Estudiante('María', 19)&lt;br /&gt;
    luis = Estudiante('Luis', 21)&lt;br /&gt;
    ana = Estudiante('Ana', 23)&lt;br /&gt;
    estudiantes = [maria, luis, ana]&lt;br /&gt;
    print sorted(estudiantes)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Métodos estáticos===&lt;br /&gt;
En Python los métodos estáticos se usan mucho menos que en Java porque se pueden crear funciones estándar en los módulos. En java un método estático y un método de clase son lo mismo. En Python no. &lt;br /&gt;
Supón que '''a()''' es una función definida en la clase Madre. Cuando una clase hija hereda:&lt;br /&gt;
* Si '''a()''' es un '''@staticmethod''', '''Hija.a()''' se refiere a la definición de la clase Madre.&lt;br /&gt;
* Si '''a()''' es un '''@classmethod''', '''Hija.a()''' apunta a la definición de la subclase.&lt;br /&gt;
Es decir:&lt;br /&gt;
* '''@staticmethod''' es una función definida dentro de una clase. Se puede llamar sin haber instanciado la clase antes. Su definición es inmutable por herencia. &lt;br /&gt;
* '''@classmethod''' es una función que a la que se puede llamar sin instanciar la clase, pero su definición sigue la subclase, no a la clase madre via herencia. Por eso su primer argumento es '''cls''' (class).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Objeto(object):&lt;br /&gt;
   contador = 0   # contador es un atributo estático&lt;br /&gt;
   def __init__(self, valor):&lt;br /&gt;
      self.valor = valor&lt;br /&gt;
      Objeto.contador += 1&lt;br /&gt;
   @staticmethod&lt;br /&gt;
   def total():&lt;br /&gt;
      return Objeto.contador&lt;br /&gt;
&lt;br /&gt;
uno = Objeto('Primero')&lt;br /&gt;
dos = Objeto('Segundo')&lt;br /&gt;
tres = Objeto('Tercero')&lt;br /&gt;
&lt;br /&gt;
print 'Hemos creado', Objeto.total(), 'objetos.'&lt;br /&gt;
print 'Soy el objeto', dos.valor, 'de', dos.total(), 'objetos.'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Salida:&lt;br /&gt;
 Hemos creado 3 objetos.&lt;br /&gt;
 Soy el objeto Segundo de 3 objetos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Objeto(object):&lt;br /&gt;
    @classmethod&lt;br /&gt;
    def metodo_de_clase(cls):&lt;br /&gt;
        print &amp;quot;Invocado desde la clase %s &amp;quot; % cls&lt;br /&gt;
class ObjetoHijo(Objeto):&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ejemplo de uso:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; Objeto.metodo_de_clase()&lt;br /&gt;
Invocado desde la clase &amp;lt;class '__main__.Objeto'&amp;gt; &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ObjetoHijo.metodo_de_clase()&lt;br /&gt;
Invocado desde la clase &amp;lt;class '__main__.ObjetoHijo'&amp;gt; &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; o = Objeto()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; o.metodo_de_clase()&lt;br /&gt;
Invocado desde la clase &amp;lt;class '__main__.Objeto'&amp;gt; &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; h = ObjetoHijo()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; h.metodo_de_clase()&lt;br /&gt;
Invocado desde la clase &amp;lt;class '__main__.ObjetoHijo'&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lmorillas</name></author>	</entry>

	</feed>