Introducción a las clases y objetos de Python
Este artículo hablará sobre clases y objetos en Python. Python es un lenguaje con objetos en todas partes. Si alguna vez has querido conocer Python, deberías haber oído que Python es un lenguaje de programación orientado a objetos. Por lo tanto, es posible que a menudo vea chistes sobre la programación "orientada a objetos", y los lenguajes de programación orientados a objetos tienen tres características principales: encapsulación, herencia y polimorfismo.
Muchas funciones y métodos con los que habitualmente entramos en contacto tienen estas propiedades. Solo sabemos cómo usarlas, pero aún no hemos comprendido profundamente su esencia. Aquí hay una introducción al conocimiento relevante sobre clases y. objetos.
El concepto de encapsulación debería resultarle familiar. Por ejemplo, si encapsulamos algunos datos en una lista, esto es encapsulación de datos. También podemos encapsular algunas declaraciones de código en una función para facilitar la llamada. , también podemos encapsular datos y código juntos. Expresado en términos, propiedades y métodos se pueden encapsular para obtener objetos.
En primer lugar, podemos definir una clase. Esta clase tiene atributos y métodos, pero algunos socios tienen curiosidad. ¿No están los atributos y métodos encapsulados en objetos? Por ejemplo, la clase es como una casa tosca y el objeto es una habitación finamente decorada transformada de la casa tosca.
Se crea un objeto de clase cuando se completa la definición de clase, que es un contenedor para el espacio de nombres creado por la definición de clase. Los objetos de clase admiten dos operaciones: referencia de propiedad y creación de instancias.
La sintaxis de referencia de atributo es la sintaxis estándar general: obj.name. Por ejemplo, XiaoMing.height y XiaoMing.run son referencias de propiedad. El primero devolverá un dato, mientras que el segundo devolverá un objeto de método.
Esto también admite operaciones de asignación a atributos de clase, como asignar un nuevo valor al atributo de peso en la clase.
La creación de instancias de una clase se puede considerar como una función sin parámetros asignada a una variable local, de la siguiente manera:
Ming es una instancia creada después de la creación de instancias de un objeto de clase Objeto, propiedades y Los métodos de la clase también se pueden llamar a través del objeto de instancia.
El proceso de creación de instancias de una clase no siempre es tan simple como en el ejemplo anterior. Generalmente, las clases tienden a crear objetos de instancia con un estado inicial, por lo que se puede definir un __init__ en la clase. El método puede ayudar a recibir y pasar parámetros.
Si una clase define el método __init__, entonces el método __init__ se llamará automáticamente para el objeto instanciado recién creado durante la creación de instancias del objeto de clase. Consulte el siguiente ejemplo.
Puede ver que los parámetros xey se pasan en __init__(), y luego los parámetros xey deben recibirse en print_coor. A continuación, al crear una instancia de este objeto de clase, verifique si los parámetros pueden. pass __init__() se pasa a la operación de creación de instancias de la clase.
La llamada herencia es que una nueva clase se construye sobre la base de otra clase. Esta nueva clase se llama subclase o clase derivada, y la otra clase se llama clase padre, clase base o. superclase. clase, y la subclase heredará algunas propiedades y métodos que ya están en la clase principal.
Por ejemplo, en el ejemplo anterior, no definí list_ como una lista, pero puede llamar al método append. La razón es que la clase Mylist hereda de la lista de clases base, y list_ es un objeto de creación de instancias de Mylist, por lo que list_ también tendrá los métodos propiedad de la lista de clases principal. Por supuesto, la relación de herencia entre dos clases se puede implementar en forma de una clase personalizada. Definimos dos clases, Parent e Child no tienen atributos ni métodos, solo heredan de la clase principal Parent.
Cuando un método o atributo con el mismo nombre que la clase principal se define en una subclase, el método o atributo correspondiente de la clase principal se sobrescribirá automáticamente. Usemos el ejemplo anterior para implementarlo más fácilmente. comprensión.
Puede ver que la subclase Child tiene un método adicional con el mismo nombre que la clase principal Parent. Cuando se crea una instancia de la subclase y se llama a este método, finalmente se llama al método de la subclase. La herencia en Python también permite la herencia múltiple, lo que significa que una subclase puede heredar atributos y métodos de varias clases principales. Sin embargo, este tipo de operación causará confusión en el código, por lo que no se recomienda en la mayoría de los casos. aquí. .
El polimorfismo es relativamente simple. Por ejemplo, define dos clases. Las dos clases no tienen relación. Solo tienen métodos con el mismo nombre en las dos clases. respectivamente, Los métodos llamados por objetos de instancia de diferentes clases también son diferentes.
Ambas clases anteriores tienen métodos introducidos. Podemos crear instancias de las dos clases y usar el objeto de instancia para llamar a este método para lograr polimorfismo.
Determina si una clase es una subclase de otra clase. Si es así, devuelve Verdadero; en caso contrario, devuelve Falso.
Hay dos puntos a tener en cuenta:
Determinar si un objeto es un objeto de instancia de una clase. Si es así, devuelve Verdadero; de lo contrario, devuelve Falso.
Hay dos puntos a tener en cuenta:
Determinar si un objeto de instancia contiene un atributo. Si es así, devuelve Verdadero; de lo contrario, devuelve Falso.
Cabe señalar que el nombre del segundo parámetro debe pasarse como una cadena. De lo contrario, se devolverá False.