Compartir tecnología

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 14 implementaciones de clases y objetos en Python: ¿puedes distinguir entre métodos estáticos y métodos de clase de una clase?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 14 implementaciones de clases y objetos en Python: ¿puedes distinguir entre métodos estáticos y métodos de clase de una clase?

Resumen:

Este artículo presenta principalmente métodos de clase y métodos estáticos en clases y objetos en Python, así como las definiciones, características, escenarios de aplicación y métodos de uso de métodos de clase y métodos estáticos, y los compara.

Enlace original:

Blog de FreakStudio

Recomendado en el pasado:

Posiblemente el tutorial de programación orientada a objetos más adecuado para iniciarse en Internet: Implementación de Python: ¡una lectura obligada para los entusiastas de la integración!

El tutorial de programación orientada a objetos más adecuado para iniciarse en todo Internet: 00 Introducción a los métodos de diseño orientado a objetos

El tutorial de programación orientada a objetos más adecuado en Internet para iniciarse: 01 Conceptos básicos de programación orientada a objetos

El tutorial de programación orientada a objetos más adecuado en Internet para comenzar: 02 Implementación de clases y objetos en Python: uso de Python para crear clases

El tutorial de programación orientada a objetos más adecuado para iniciarse en Internet: 03 Implementación de clases y objetos en Python: agregar atributos a clases personalizadas

El tutorial de programación orientada a objetos más adecuado para iniciarse en Internet: 04 Implementación de clases y objetos en Python: agregar métodos a clases personalizadas

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 05 Implementación de clases y objetos en Python: etiquetas de código PyCharm

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 06 Implementación de clases y objetos en Python: encapsulación de datos de clases personalizadas

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 07 Implementación de clases y objetos en Python: anotaciones de tipo

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 08 Implementación de clases y objetos en Python-@property decorador

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 09 Implementación de clases y objetos en Python: la relación entre clases

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: 10 implementaciones de clases y objetos en Python: herencia de clases y principio de sustitución de Liskov

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: implementación en Python de 11 clases y objetos: la subclase llama al método de la clase principal

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: implementación de Python de 12 clases y objetos: Python usa el módulo de registro para generar registros de ejecución de programas

El tutorial de programación orientada a objetos más adecuado para principiantes en Internet: Implementación en Python de 13 clases y objetos - Instalación y uso del artefacto de lectura de código visual Sourcetrail

Contenido más interesante para ver:

Breve análisis del sistema de depuración CM3.

Después de medio mes de trabajo, se publica un resumen de la pila de tecnología integrada

Secretos de las artes marciales para ganar competiciones: 05. Cómo dividir el trabajo y el contenido de estudio del equipo nacional premiado en competiciones de informática electrónica

Secretos de las artes marciales para ganar competiciones: 04 Una guía rápida y de lectura obligada para el desarrollo integrado en competiciones electrónicas

Secretos de las artes marciales para ganar competiciones: 03 Buenas elecciones creativas: el requisito previo más necesario para ganar el premio nacional

Secretos de artes marciales para ganar competencias: 02 secretos de premios nacionales: un proceso de inicio rápido para competencias de computadora para estudiantes universitarios, una lectura obligada para principiantes

Secretos de las artes marciales para ganar competencias: 01 ¿Cómo ve el fenómeno de "rodar", "eventos ancestrales" y "buscar conexiones" en las competencias universitarias contemporáneas?

Secretos de artes marciales para ganar competencias: 00 Competencia de materias: un tema que los estudiantes universitarios de ingeniería no pueden evitar.

Los "secretos de las artes marciales" de los concursos de electrónica e informática - Concurso electrónico Concurso de diseño de optoelectrónica Concurso de diseño de computadoras Concurso de diseño de sistemas y chips integrados, ¡todo lo que necesita está aquí!

Documentación y adquisición de códigos:

Puede visitar el siguiente enlace para descargar el documento:

https://github.com/leezisheng/Doc

imagennn

Este documento presenta principalmente cómo usar Python para la programación orientada a objetos y requiere que los lectores tengan un conocimiento básico de la sintaxis de Python y el desarrollo de microcontroladores. En comparación con otros blogs o libros que explican la programación orientada a objetos de Python, este documento es más detallado y se centra en aplicaciones de computadora host integradas. Utiliza el envío y recepción de datos del puerto serie común, el procesamiento de datos, el dibujo de gráficos dinámicos, etc. y computadora inferior como ejemplos de aplicaciones, y use el software de código Sourcetrail para leer visualmente el código para facilitar la comprensión de los lectores.

Los enlaces de código de muestra relevantes son los siguientes:https://github.com/leezisheng/Demostración-de-programación-orientada-a-Python

texto

método estático

Tomando la clase SensorClass como ejemplo, los llamados métodos InitSensor, StartSensor, StopSensor, etc. definidos en la clase sonMétodos de objetos, Es decir, todos estos métodos son mensajes enviados al objeto y todos llaman a las propiedades del objeto.De hecho, los métodos que escribimos en la clase no necesitan ser métodos de objeto. Hay algunos métodos en la clase que no necesitan llamar a los atributos del objeto. Por ejemplo, en el método InitSensor, es posible que necesitemos determinar si el método actual. El puerto COM existe Obviamente, este método es diferente de los objetos Sensor que son irrelevantes.

Para otro ejemplo, definimos una clase "Triángulo", construimos un triángulo pasando las longitudes de tres lados y proporcionamos métodos para calcular el perímetro y el área. Sin embargo, es posible que las tres longitudes de los lados pasadas no puedan construir un objeto triangular, por lo que. Primero podemos escribir un método para verificar si las longitudes de tres lados pueden formar un triángulo. Este método obviamente no es un método de objeto, porque el objeto triángulo no se ha creado cuando se llama a este método (porque no se sabe si los tres lados pueden formar un triángulo). formar un triángulo), por lo que este método es la clase Triangle pero no un objeto triángulo.nosotros podemos usarmétodo estáticoPara resolver este tipo de problema, el código es el siguiente.

@staticmethod
    _# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
    def IsTrueID(id:int = 0):
        if id >= 0 and id <= 99:
            return True
        else:
            return False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Los métodos estáticos son en realidad las funciones que hemos aprendido. La única diferencia entre ellos y las funciones es que los métodos estáticos se definen en el espacio de la clase (espacio de nombres de clase), mientras que las funciones se definen en el espacio donde se encuentra el programa (espacio de nombres global). . Los métodos estáticos no tienen parámetros especiales como self y cls, por lo que el intérprete de Python no vinculará ninguna clase u objeto para los parámetros que contiene. Debido a esto, no se pueden llamar atributos de clase ni métodos de clase en métodos estáticos de una clase. Aquí definimos el método estático IsPort para determinar si el número de identificación del sensor es correcto. El método estático debe modificarse con @staticmethod. Para llamar a un método estático, puede utilizar un nombre de clase o un objeto de clase, por ejemplo:

_    # 设置ID号_
    id = 1
_    # 判断ID号是否符合格式_
    if SensorClass.IsTrueID(id):
        s = SensorClass()
    else:
        print("Sensor Init False")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

imagennn

método de clase

Al igual que los métodos estáticos, Python también puede definir métodos de clase en la clase. El primer parámetro del método de clase se denomina convencionalmente cls, que representa el objeto de información relacionado con la clase actual (la clase en sí también es un objeto, y en algunos casos). lugares Llamado el objeto de metadatos de la clase), a través de este parámetro podemos obtener información relacionada con la clase y crear objetos de la clase. Python vinculará automáticamente la clase al parámetro cls (tenga en cuenta que no está vinculado al objeto de clase). ). En otras palabras, cuando llamamos al método de clase, no necesitamos pasar parámetros explícitamente para el parámetro cls.

Los métodos de clase deben modificarse usando el modificador @classmethod. Definimos el método de clase MasterInfo en MasterClass. El código de muestra es el siguiente.

@classmethod
    def MasterInfo(cls):
        print("Info : "+str(cls))

print(MasterClass.MasterInfo())
  • 1
  • 2
  • 3
  • 4
  • 5

imagennn

Insertar descripción de la imagen aquí