Red de conocimiento informático - Problemas con los teléfonos móviles - Orientación a objetos en Python (avanzado)

Orientación a objetos en Python (avanzado)

I. Métodos de instancia, métodos de clase, métodos estáticos

Primero escribimos una clase que contiene los tres métodos.

Como puedes ver, estamos usando dos decoradores.

Usamos clases e instancias para llamar a métodos de clase

Usamos clases e instancias para llamar a métodos estáticos

Un método estático es en realidad solo un método escrito en un La función ordinaria de clase, que es lo mismo que escribir una función directamente en la capa exterior, es esencialmente una función.

Para facilitar la comprensión, imprimamos los tipos de estos métodos

Utilice type()

Compruebe si un objeto es un método o una función

Además, puede utilizar el módulo de inspección para determinar si un objeto es de un determinado tipo, lo que devuelve un valor booleano.

Cómo usarlo

Consejos: comprensión conceptual

Defínelo directamente, lo llamamos función

Pon la función en la clase , Lo llamamos método

A través del método estático decorador, el método se puede convertir en una función (poner en el método)

Herencia

Herencia

Cuando una clase hereda de otra clase, obtendrá automáticamente todas las propiedades y métodos de la otra clase. La clase heredada se llama clase principal y la nueva clase se llama clase secundaria; La subclase tiene todas las propiedades y métodos de la clase principal y puede definir sus propias propiedades y métodos

Intentemos usar la clase Rectángulo anterior como clase principal

1) Herencia completa

p>

Como puede ver, una vez que la subclase hereda completamente la clase principal, puede llamar directamente a todos los métodos de la clase principal.

2) Herencia parcial

Herencia parcial: después de heredar de la clase principal, modifique el método del mismo nombre de la clase principal

Probémoslo. Square hereda de Rectángulo y modifica el método __init__()

3) Extender el método de la clase padre

3) Extender el método de la clase padre

Extender un método manteniendo el método en la clase principal. El código del método

se puede agregar agregando "super().nombre del método"

4)@property