[Nuevo examen pitón programación segunda edición DONG Fu-guo] pitón método especial y la sobrecarga de operadores

1. Los ejemplos del método

1,1 __add __ (self, n)

# - * - coding:. UTF-8 - * - 

# matriz de clase, cuatro operaciones aritméticas entre el soporte y el número de matriz 
# añadiendo entre matrices, y comparar el tamaño de la operación producto interior 
# elemento de la matriz para acceder y modificar 
# miembros de prueba 
de clase MiMatriz :
     la __value = []
     __size = 0 
    
    # determina si un digital de 
    DEF  __IsNumber (Self, n-):
         iF ( No la isinstance (n-, int)) y \ 
           ( No la isinstance (n-, un flotador)) y \ 
           ( No la isinstance (n-, complejo)):
                devolver Falso
         el otro:
             Retorno verdadera 
          
    # initialize 
    DEF  __init__ (Ser, * args):
         SI  no args: 
            . Ser __value = []
         la cosa :
             por Arg en args:
                 SI  no Ser. __IsNumber (Arg):
                     Imprimir ( ' Todos los elementos por el debe ser un Números ' )
                     retorno 
            Ser. la __value = Lista (args) 
        
    # una matriz se añade cada elemento al número n, o la adición de dos matrices
    def  __add__ (self, n):
         si mismo. __IsNumber (n): 
            b = MiArray ()
             para v en la auto. __value : 
                b. __value .Append (v + n)
             de retorno b
         elif isinstance (n, MiArray):
             si len (. n __value (. auto) == len __value ): 
                c = MiArray ()
                 para i, j en zip (auto. __value , norte.__value ): 
                    c. __value .Append (i + j)
                 de retorno c
             cosa :
                 impresión ( ' Longitud no igual ' )
         otra cosa :
             impresión ( ' No soportado ' )

1.2 __sub__

    def  __sub__ (auto, n):
         si  no auto. __IsNumber (n):
             impresión ( " no el número " )
             de retorno 
        b = MiArray ()
         para v en la auto. __value : 
            b. __value .Append (v - n)
         de retorno b

1.3 __repr__: objeto de salida directa [distinción __str__)

 Si usted no escribe esta función:

    # Llamar directamente al utilizar el objeto en función de la instrucción 
    DEF  __repr__ (Ser):
         retorno repr (. Ser __value )

1,4 __str__: objeto de salida directa

def  __str__ (auto): 
retorno str (. auto __value )

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/douzujun/p/12535830.html
Recomendado
Clasificación