Programación orientada a objetos
Ejemplos de clases y
Clase es el modelo abstracto
clase Estudiante (Objeto): Passclass
es seguida inmediatamente por un nombre de clase, es decirStudent
, el nombre de la clase suele ser el comienzo de la palabra en mayúscula, seguida de(object)
,
representar a la clase que se hereda de la baja clase, el concepto de herencia detrás de nosotros repetir que,
en general, Si no hay clases heredadas adecuados, el usoobject
de clases, que es, finalmente, todas las clases heredan de clases
Crear una instancia de la clase se realiza por su nombre + ()
Bart = >>> Estudiante () >>> Bart < __main__ .Student objeto en 0x10a67a590> # indica el punto es un ejemplo de Bart Estudiante de 0x10a67a590 detrás de la dirección de memoria de cada dirección de memoria no es la misma instancia >>> Estudiante < clase ' __main __. Estudiante ' >
Libre de dar una variable de instancia propiedades tales como la unión de un nombre a una instancia de propiedad Bart vinculante
>>> bart.name = ' Bart Simpson ' >>> bart.name ' Bart Simpson '
Creemos que parte de la propiedad debe estar enlazado obligatorio llenar. Al definir un especial __init__
método
clase Estudiante (objeto) def __init__ (self, nombre, puntuación): self.name = nombre self.score = Puntaje
Nota: método especial "__init__" Hay dos guiones antes y después! !
Señaló que el __init__
primer argumento es siempre self
, en sí mismo representado por se crea una instancia, por lo tanto, los __init__
métodos internos, que pueden poner todo tipo de propiedad está obligado a self
, ya self
que apunta a crear una instancia de sí mismo.
Con el __init__
método, cree una instancia en el tiempo, no se puede pasar un parámetro nulo, debe pasar el __init__
método de ajuste de parámetros, pero self
no es necesario pasar, intérprete de Python mismo pasará en una variable de instancia:
encapsulación de datos
clase Estudiante (objeto): def __init__ (self, nombre, puntuación): self.name = nombre self.score = puntuación def print_score (self): print ( ' % s:% s ' % (self.name, self.score)) Para definir un método, además del primer parámetro se encuentra fuera del mismo, y otras funciones normales. Para llamar a un método, sólo tiene que llamar directamente sobre las variables de instancia, además de uno mismo no pasan, los demás parámetros normales pasaron en:
Restricciones de acceso
Dentro de la clase, y puede tener propiedades y métodos proporcionan el código externo puede ser variables de instancia frío dentro Hey método oculta la complejidad de la operación de la lógica interna
Sin embargo, la definición de la vista frontal del estudiante de clase, código externo es libre de modificar un ejemplo de un nombre, atributo puntuación
Si desea que los atributos internos no son accesibles desde el exterior, se puede poner antes de que el nombre de la propiedad y dos guiones bajos __
, en Python, los nombres de las variables ejemplo, si el __
principio, se convierte en una variable privada (Private) , sólo el acceso al interior de, exterior puede tener acceso, por lo que altera la categoría de estudiantes:
clase Estudiante (objeto): def __init__ (self, nombre, puntuación): yo. __name = nombre yo. __score = puntuación def print_score (self): print ( ' % s:% s ' .% (auto __name ., identidad __score ))
Tenga en cuenta que, en Python, un nombre de variable es similar __xxx__
, y comienza con un doble subrayado, subrayado doble y hasta el final, es una variable especial, variable especial que se puede acceder directamente , no variables privadas, por lo tanto, no se pueden utilizar __name__
, __score__
por lo nombre de la variable.