Código de Python - Ejemplo del uso de @staticmethod y @classmethod

Imágen de perfil
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ejemplo del uso de @staticmethod y @classmethodgráfica de visualizaciones


Python

Publicado el 21 de Abril del 2019 por Joel (150 códigos)
5.543 visualizaciones desde el 21 de Abril del 2019
Simple código que muestra el uso de @staticmethod y @classmethod

@staticmethod
Definimos el método como @staticmethod, lo cual se podrá ejecutar directamente como si fuera una función o una instancia

@classmethod
Definimos el método como @classmethod, lo cual se podrá ejecutar directamente como si fuera una función o con la instancia, pero recibe implícitamente una instancia al objeto con cls

Requerimientos

Python 2.x y Python 3.x

Versión 1

Publicado el 21 de Abril del 2019gráfica de visualizaciones de la versión: Versión 1
5.544 visualizaciones desde el 21 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
"""
Clase de ejemplo para el uso de @classmethod y @staticmethod
"""
 
class MiClase(Exception):
    """
    Clase de ejemplo
    """
    valor = 5
 
    def suma1(self, valor1, valor2):
        """
        Definimos un metodo que se llama unicamente desde una instancia de la
        clase, el cual recibe implicitamente una instancia al objeto como primer
        argumento
        Solo se puede llamar con una instancia a la clase
            ObjetoMiClase = MiClase()
            ObjetoMiClase.suma1(n,n)
        """
        return valor1+valor2+self.valor
 
    @staticmethod
    def suma2(valor1, valor2):
        """
        Definimos el metodo como @staticmethod, lo cual se podra ejecutar
        directamente como si fuera una funcion:
            MiClase.suma1(n,n)
        o con la instancia:
            ObjetoMiClase = MiClase()
            ObjetoMiClase.suma2(n,n)
        No tendra relación con el objeto donde se encuentra
        """
        return valor1+valor2
 
    @classmethod
    def suma3(cls, valor1, valor2):
        """
        Definimos el metodo como @classmethod, lo cual se podra ejecutar
        directamente como si fuera una funcion:
            MiClase.suma1(n,n)
        o con la instancia:
            ObjetoMiClase = MiClase()
            ObjetoMiClase.suma3(n,n)
        Tendra acceso al contenido del objeto aunque no este instanciado
        """
        return valor1+valor2+cls.valor
 
 
# llamamos a las metodos sin instanciar la clase
print("Sin instancia")
print("-------------")
print("MiClase.suma2(1, 2)", MiClase.suma2(1, 2)) # devolvera: 3
print("MiClase.suma3(1, 2)", MiClase.suma3(1, 2)) # devolvera: 8
 
print("\nCon instancia")
print("---------------")
ObjetoMiClase = MiClase()
# llamamos a los metodos con una instancia de la clase
print("ObjetoMiClase.suma1(1, 2)", ObjetoMiClase.suma1(1, 2)) # devolvera: 8
print("ObjetoMiClase.suma2(1, 2)", ObjetoMiClase.suma2(1, 2)) # devolvera: 3
print("ObjetoMiClase.suma3(1, 2)", ObjetoMiClase.suma3(1, 2)) # devolvera: 8



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5266