"Python" estado tanto como tres características orientado a objetos, el paquete

Un polimórfica

  1. ¿Cuál es el polimorfismo?

    Una exposición de la clase una variedad de estado: para lograr a través de la herencia

    Rendimiento en Java: se necesita especificar una función de los tipos de datos de parámetros, si este lugar puede recibir dos o más tipos de parámetros, entonces estos tipos deben tener un padre, la clase padre es una subclase de objetos de todo tipo.

    En Python: La función de los parámetros no es necesario especificar el tipo de datos, por lo que no es necesario ser un conjunto unificado de tipos de clase en forma de herencia, en otras palabras: todos los objetos están en letra hecho de objetos, todos ellos en todas partes en Python polimorfismo.

# El polimorfismo se refiere a una clase de cosas que hay una variedad de formas 

# animales tienen una variedad de formas: humano, perro, cerdo 

importación abc 
clase de animales (la metaclase que = abc.ABCMeta): # el mismo tipo de cosas: Animales 
    @ abc.abstractmethod 
    DEF conversación ( Ser): 
        paso de 

la gente de clase (animal): # una formas de animales: la gente 
    def charla (self): 
        print ( 'decir Hola') 

perro de clase (animal): # forma de dos animales: perros 
    def charla (auto) : 
        Imprimir ( 'decir wangwang') 

de cerdo clase (animal): # formas de tres animales: cerdos 
    DEF Talk (Ser): 
        print ( 'decir Aoao')

 

  2, polimorfismos

    Lo que es una dinámica de múltiples estados de unión (cuando se utiliza en el contexto de la herencia, a veces llamadas polimorfismos)

    Polimorfismo se refiere a los ejemplos de uso sin tener en cuenta los ejemplos de tipos de

# En el enfoque orientado a objetos se expresa generalmente polimorfismo: 
# enviar el mismo mensaje (!!! obj.func () para objetos diferentes: método FUNC obj se llama, también conocido como un mensaje transmitido a la obj func), al recibir diferentes objetos tendrá un comportamiento diferente (es decir, método). 
# Es decir, cada objeto puede estar en su manera de responder a un mensaje común. El llamado noticia es llamar a la función, comportamiento diferente se refiere a las distintas aplicaciones que realizan diferentes funciones. 

# Por ejemplo: La campana sonó maestro (), estudiante sonó la campana (), un profesor de trabajo es realizado por la operación, realizada por los estudiantes después de operaciones de la escuela, a pesar de los dos mensajes de la misma, pero los diferentes efectos de la aplicación del

 

  3, tipo Patos

    Python abogando tipo de pato, es decir, "si parece que, como sonidos y camina como un pato, entonces es un pato."

    len () Rango de la lista # str tupla conjunto dict para la función len, estos son los tipos de pato

    índice () Lista # str tupla a la función de índice, estos son los tipos de patos

    print () # imprimirlo para todo tipo de objetos son de pato

    No está claro el polimorfismo través de la herencia, sino por un concepto vago para juzgar esta función no puede aceptar este tipo de parámetro

 

En segundo lugar, el paquete

  Concepto: Propiedades y detalles de implementación de objetos ocultos, sólo la provisión externa de acceso público.

  beneficios :

    1, el cambio en el aislamiento;

    2, fácil de usar;

    3, para mejorar la capacidad de reutilización;

    4, mejorar la seguridad;

  principios :

    1, el contenido no tiene que proporcionar tanto están ocultos;

    2, las propiedades están ocultos para proporcionar acceso público a sus métodos.

  Generalizada :( paquete en las propiedades de la función se colocan en clase)

    nombre de la clase de clase:

      Método def 1 (self): pase

      Método def 2 (self): pase

    Es el único objeto de esta clase con el fin de utilizar los métodos definidos en la clase

  Los miembros privados :( paquete en el sentido estricto)

    La posesión de una propiedad o un método en una clase

    Clase de las mercancías:

      __discount = 0 # variable estática privada

      imprimir (__ descuento)

    Las mercancías de impresión (descuento) .__ # variables estáticas privadas no se puede hacer referencia fuera de la clase

    variable estática en los nombres de clase y método en el transcurso del programa se ha cargado en la ejecución haya terminado, no es necesario esperar a que la llamada

    Antes de esta clase cargado, nombre de mercancías aún no ha aparecido en el espacio de memoria

    propiedades estáticas privadas se pueden utilizar dentro de la clase, que se utiliza para ocultar el valor de una variable

  los miembros privados de la clase:

    1, propiedades estáticas privadas

    2, las propiedades de objeto privadas

    3, los métodos patentados

  ¿Por qué se quiere definir una variable privada?

    1, no quiero que veas este valor

    2, no quiero que cambie este valor

    3, yo quiero que usted tenga algunas limitaciones en este valor se modifica cuando: garantizar la seguridad de los datos

    4, algunos métodos o atributos que no desea heredados por las subclases

  Las variables privadas y métodos privados:

    En el camino comienzo con Python atributo subrayado doble oculta (se establece en privado)   

# Sin embargo, esta es una variante de esta operación 
# nombres de clase que comienzan con un doble subrayado todas estas variaciones se forman automáticamente __x: _ __x nombre de clase de la forma: 

Clase A: 
    __N = 0 # datos de atributos de clase deben ser compartidos , pero la clase de atributo de datos de gramática se establece en tal __N privado, se deformará _A__N 
    DEF la __init __ (Self): 
        self .__ = 10 # X-deformado self._A__X 
    __foo DEF (Self): modificación # es _A__foo 
        impresión ( 'de un') 
    barra de DEF (Ser): 
        . self .__ foo () # accesible sólo dentro de la clase a la forma __foo 

# A._A__N es accesible a, es decir, dicha operación restricciones sobre el acceso externo no es un sentido estricto, sólo una deformación del significado gramatical  

  Este automáticas características de deformación:

    1. clase definida __x uso interno, tales como self .__ x, citado es el resultado de la deformación .

    2. Este hecho deformación, es contra la deformación externa , no es accesible al exterior a través de nombre __x.

    3. En una definición de subclase __x no anulan la definición __x clase padre, como una subclase se transformó en: _ nombre de subclase __x, mientras que la clase padre se transformó en: _ el nombre de la clase padre __x, que es el doble de la caída al principio de la línea para heredar la propiedad de la subclase, la subclase no está cubierto.

  

  Este problemas de deformación que la atención necesidad son:

    1. Este mecanismo también no nos limita el acceso directo desde el sentido real fuera de la propiedad, conociendo el nombre de la clase y el nombre de la propiedad puede deletrear el nombre: nombre de la clase _ __ propiedad, a continuación, se puede visitar, como a._A__N

    2. Modificación del proceso en efecto sólo dentro de la clase, como se define en la asignación, no se deforma

    

  En la sucesión, la clase padre, si usted no quiere subclases para cubrir sus propios métodos, los métodos se puede definir como privada

# Normalmente 
>>> clase A: 
... DEF FA (Ser): 
... print ( 'de A') 
... Prueba DEF (Ser): 
... self.fa () 
... 
>> > clase B (A): 
... def f bis (Ser): 
... print ( 'de B') 
... 
>>> B = B () 
>>> b.test () 
desde B 
 

# fa definida como privada, es decir __fa 
>>> clase a: 
... DEF __fa (Ser): # deformado cuando se declara _A__fa 
... print ( 'de un') 
... DEF Test (Auto) : 
... self .__ FA () # prevalecerá y en su clase, que llama a _A__fa 
... 
>>> clase B (a): 
... DEF __fa (Ser): 
... print ( 'de B') 
... 
>>> B = B () > B = B () 
>>> b.test ()
de la A

 

  Embalaje y escalabilidad

    Bono que incluye una clara distinción entre el interior y el exterior, de manera que el implementador clase puede modificar las cosas dentro del paquete sin afectar el exterior que llama código; y sabe sólo para uso externo con una interfaz (función), siempre y cuando el nombre de la interfaz (función), cambiar los parámetros, utilizando quien siempre sin cambiar el código. Esto proporciona una buena base para la cooperación - o, siempre y cuando la interfaz a la convención básica sin cambios, el código cambia motivo de preocupación.

# Diseñadores de clase 
clase habitación: 
    __init DEF __ (self, nombre, propietario, ancho, largo, alto): 
        self.name = Nombre del 
        propietario self.owner = 
        self .__ width = ancho 
        self .__ longitud = longitud 
        auto .__ alta = Alta 
    DEF tell_area (self): # proporcionan interfaces externas, ocultando los detalles de implementación interna en este momento queremos pedir es la zona 
        de retorno ancho * Cuenta propia .__ .__ longitud 


# usuario 
>>> r1 = la habitación ( 'dormitorio', 'Egon ', 20,20,20) 
>>> r1.tell_area () # la interfaz de usuario llama tell_area 


# diseñador de la clase, fácil de extender la funcionalidad y el usuario no tiene que cambiar por completo su código de clase 
clase habitación: 
    DEF __ la __init (Self, nombre, propietario, anchura, longitud, Alto): 
        el nombre self.name = 
        propietario self.owner = 
        self .__ width = anchura 
        self .__ longitud = longitud
        .__ alta = Alta Auto 
    tell_area DEF (Ser): # proporcionan interfaces externas, ocultando la implementación interna, esta vez queremos pedir es el volumen, la lógica interna cambiado, sólo la siguiente línea necesita reparación puede lograr respuesta muy corta, y llamadas externas imperceptible, seguir utilizando este método, pero la función ha cambiado 
        de retorno ancho * cuenta propia .__ .__ .__ alta auto longitud * 


# para dejar de utilizar la interfaz humana tell_area, como no hay necesidad de cambiar el código, se puede utilizar nuevas características 
>>> r1.tell_area ()

 

Supongo que te gusta

Origin www.cnblogs.com/zyling/p/12641032.html
Recomendado
Clasificación