Los tipos de datos que aprendimos anteriormente son clases y podemos usar muchos métodos en las clases.
La definición de una clase utiliza la palabra clave class y la estructura de sintaxis es la siguiente:
nombre de clase:''''Documento de clase''''contenido
Nombre es el nombre de la clase que queremos crear. Tenga en cuenta que intentamos usar letras mayúsculas cuando la usamos. Si usamos dos palabras para nombrarla, las primeras letras de las dos palabras deben ser mayúsculas.
La documentación de la clase es información escrita para ayudarnos a comprender esta clase.
El contenido es el cuerpo de la clase , incluidas variables, métodos, atributos, etc. Si no necesitamos agregar contenido temporalmente al definir la clase, podemos usar la declaración de paso para que actúe como una declaración de marcador de posición.
Definamos una clase:
classSchool: #De esta manera definimos una clase llamada Escuela'''Definimos una clase de escuela'''passschool=School()#De esta manera llamamos a esta clase print(type(school))#Pasar salida Eche un vistazo a su tipografía (escuela)
La salida es:
<clase'__main__.School'><__main__.Schoolobjectat0x03372DD8>
A partir de los resultados, podemos ver que la escuela es una clase y, desde la segunda línea, podemos ver que la escuela es una instancia de la clase Escuela.
Al crear una clase, a menudo se crea un método __init__(). Este método es un método de construcción, es decir, este método se utilizará cada vez que se llame a la clase y también se pasarán parámetros en este método.
Este método debe contener un parámetro propio, que también debe ser el primer parámetro. Este parámetro apunta a la instancia misma y puede acceder a las propiedades y métodos que existen en esta clase.
Mira el siguiente ejemplo:
classSchool: #De esta manera definimos una clase si queremos llamar a esta clase'''definimos una clase de escuela''' def__init__(self):print('Aquí está el método __init()__')def__judge__( self) :print('Juzgar si se llama a este método')escuela=Escuela()
La salida es:
Aquí está el método __init()__
En el resultado, podemos ver que siempre que se llame a esta clase, el método __init__ se llama automáticamente, pero no se llama al siguiente método __judge__.
También podemos usar un bucle para verificar si el método init se usará cada vez que se llame a esta clase:
Mira el código a continuación:
classSchool:'''Definir una clase escolar'''count=0def__init__(self):School.count+=1print('Este es el %désimo uso del método __init()__'%School.count)foriinrange(5): Escuela()
La salida es:
Aquí está el primer uso del método __init()__. Aquí está el segundo uso del método __init()__. Aquí está el tercer uso del método __init()__. Aquí está el __init()__. el método Aquí está el quinto uso del método __init()__
Podemos ver en el resultado que usamos el método init 5 veces. Cuando llamamos a esta clase por primera vez, el recuento es 0 y luego el método init se suma en 1. El valor school.count en el método init aumenta. cada vez 1. Entonces el recuento más externo no cambia. A través de este ejemplo, podemos aprender a usar init.
Cuando estamos aprendiendo funciones, la transferencia de parámetros se define en el nombre de la función y, en la clase, podemos transferir parámetros de manera más conveniente a través del método init.
Mira el siguiente ejemplo:
classGetAge:def__init__(self,nombre,edad):self.name=nombreself.age=ageprint('la edad de %s es %d'%(nombre,edad))GetAge('Xiao Ming',18)
La salida es:
La edad de Xiao Ming es 18.
Debemos tener en cuenta que self es esencial y debe colocarse primero. Luego, cuando llamamos a esta clase, la cantidad de parámetros (excluyendo self) contenidos en el método init debe ser igual a la cantidad que estamos llamando. aprobado.