Herramientas de usuario

Herramientas del sitio


script:python

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
script:python [2012/11/01 11:26]
127.0.0.1 editor externo
script:python [2020/05/09 09:25] (actual)
Línea 48: Línea 48:
 ===== Orientado a objetos ===== ===== Orientado a objetos =====
 ==== Clases ==== ==== Clases ====
-  * Definimos una clase como: ''​class <​nombre>:''​ +
-  * Siempre, a cada método de la clase, debemos pasar como primer argumento la palabra '​self',​ que corresponde a sí mismo, algo así como el this de otros lenguajes. +
-  * Las propiedades de la clase son definidas mediante el self dentro de la clase. Esto es, si definimos algo así: self.prop = 4, luego podremos hacer <​objeto>​.prop,​ pero si no lo hemos definido esto nos dará error. Es cuando la definimos cuando se crea. +
-  * El método constructor por defecto en una clase sería:  +
-<code python>​ +
- def __init__ (self) +
-</​code>​ +
-  * Para crear un objeto haríamos: <​nombre>​ = <​clase>​() +
-  * Ejemplo de definición de una clase: +
-<code python>​ +
-    class cPrueba: +
-        def __init__ (self): +
-            print "​constructor"​ +
-        def method (self): +
-            print "​metodo"​ +
-        def params (self, num): +
-            print num +
-</​code>​ +
-  * Ejemplo de llamadas: +
-<code python>​ +
-    c = cPrueba () # constructor +
-    c.method() #​ metodo +
-    c.params(33) #​ 33 +
-</​code>​+
   * Para tener constructores con argumentos estos han de tener un valor por defecto, sino no furrulará:   * Para tener constructores con argumentos estos han de tener un valor por defecto, sino no furrulará:
 <code python> <code python>
Línea 91: Línea 68:
   * <​del>​El orden de llamada a los constructores en las clases que participan en la herencia es el de siempre: primero el de la base y luego el de las heredadas.</​del>​ MENTIRA!!, has de llamarlos tú: <​nowiki>​nombreBase.__init__(self))</​nowiki>​   * <​del>​El orden de llamada a los constructores en las clases que participan en la herencia es el de siempre: primero el de la base y luego el de las heredadas.</​del>​ MENTIRA!!, has de llamarlos tú: <​nowiki>​nombreBase.__init__(self))</​nowiki>​
   * Para acceder a la clase base de una derivada desde esta, no tenemos que hacer más que <​NombreClaseBase>​.<​NombreMetodo>​   * Para acceder a la clase base de una derivada desde esta, no tenemos que hacer más que <​NombreClaseBase>​.<​NombreMetodo>​
-  * Un método curioso, que haría como el .toString() de Java, sería el ''<​nowiki>​__str__</​nowiki>''​. Si en una clase definimos este método, cuando dicha clase se use como string devolverá lo que retorne dicho método: + 
-<code python>​ +
- class cClase: +
- ... +
- def __str__ (self): +
- return "​hola"​ +
- ... +
- obj = cClase() +
- print obj # hola +
-</​code>​ +
-  * Otro método es el de la documentación (''<​nowiki>​__doc__</​nowiki>''​),​ para redefinir este no tenemos que reescribir nada, únicamente debemos, después del nombre de clase, insertar un string, este será su documentación:​ +
-<code python>​ +
-    class cHi: +
-        "Clase de prueba"​ +
-        nombre = ""​ +
-     +
-    x = cHi() +
-    x.nombre = "​Pepe"​ +
-    print x.nombre # Pepe +
-    print x.__doc__ #​ Clase de prueba +
-</​code>​+
 === Notas de clases === === Notas de clases ===
   * Si metes una propiedad dentro de una clase, le das un valor, creas objetos y luego la cambias. Esa propiedad será cambiada para todos los objetos.   * Si metes una propiedad dentro de una clase, le das un valor, creas objetos y luego la cambias. Esa propiedad será cambiada para todos los objetos.
script/python.1351769194.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)