¿Cuáles son las recetas mágicas para Python?
Método mágico de inicialización
Tiempo de activación: se activa cuando el objeto se inicializa (no se activa mediante creación de instancias, pero se crea una instancia en la misma operación que).
Parámetros: al menos un yo, objeto receptor.
Valor de retorno: Ninguno
Función: Inicializar los miembros del objeto.
Nota: Los miembros inicializados de esta manera se escriben directamente en el objeto y no se pueden incluir en la clase.
2.__Nuevo__
Método mágico de creación de instancias
Tiempo de activación: se activa cuando se crea una instancia de un par.
Parámetros: Al menos un cls recibe la clase actual.
Valor de retorno: se debe devolver una instancia de objeto.
Rol: objeto de creación de instancias
Nota: el objeto de creación de instancias es la implementación subyacente de la clase Object. Otras clases heredan el __new__ de Object para implementar el objeto de creación de instancias.
Está bien. No toques este método mágico. __new__ se activa antes de que se active __init__.
3.__del__
La magia de la deconstrucción
Tiempo de activación: Se activa cuando el objeto es inútil (sin referencias variables).
Parámetro: Objeto de búsqueda de matrimonio propio
Valor de retorno: Ninguno
Función: El objeto utilizado es reciclar recursos.
Nota: del no necesariamente activará el método actual, solo se activará cuando el objeto actual no reciba ninguna variable.
4.__Call_ _
Llamar al método mágico del objeto
Tiempo de disparo: cuando se llama a la función (), el objeto se considera un disparador objeto
Parámetros: al menos un objeto autocoleccionable, el resto se determina de acuerdo con los parámetros al llamar.
Valor de retorno: Depende de la situación.
Función: puede combinar pasos complejos, reducir los pasos de llamadas y es simple y fácil de usar.
Nota: Ninguna.
5.__len__
Tiempo de disparo: se activa cuando se usa len (objeto).
Parámetro: un parámetro en sí.
Valor de retorno: debe ser un número entero.
Función: Se puede configurar para detectar el número de miembros del objeto, pero también puede realizar cualquier otra operación.
Nota: El valor de retorno debe ser un número entero; de lo contrario, la sintaxis informará un error. Este requisito es un requisito de formato.
6.__str__
Tiempo de activación: se activa cuando se usa print (objeto) o str (objeto).
Parámetro: Objeto autorreceptor.
Valor de retorno: debe ser de tipo cadena.
Función: imprimir (hora del objeto) se usa para operaciones para obtener una cadena, que generalmente se usa para operaciones de acceso directo.
Nota: Ninguna.
7.__repr__
Tiempo de activación: Se activa cuando se usa repr (objeto).
Parámetro: Objeto autorreceptor.
Valor de retorno: debe ser una cadena.
Función: se puede usar cuando se usa repr para convertir objetos en cadenas y también se puede usar para operaciones de acceso directo.
En términos de procesamiento de cadenas, solo hay una diferencia entre la función repr y la función str:
La cadena de resultado de str en sí (el resultado se puede ejecutar mediante eval)
Por ejemplo :x = 'Sin tallado gráfico' str()-& gt; Sin palabras, Diao
La cadena de resultado de rerpr define la estructura (eavl no ejecutará el resultado de repr). ).
Por ejemplo: La configuración suele ser la misma.
eval()
La función ejecuta una cadena como código Python.
Formato: eval (cadena)
Valor de retorno: Puede haber un valor de retorno.
8.__bool__
Tiempo de activación: se activa cuando se usa bool (objeto).
Parámetro: Objeto autorreceptor.
Valor de retorno: debe ser un valor booleano.
Función: Dependiendo de la situación real, se puede utilizar como acceso directo.
Nota: Solo aplicable a operaciones que devuelven valores booleanos.
9.__Format__
Tiempo de disparo: cuando cadena. Utilice formato (objeto).
Parámetro: uno mismo recibe un objeto, un parámetro recibe el formato {0} en el formato, por ejemplo:>; cinco
Valor de retorno: debe ser una cadena.
Función: Establece el objeto como parámetro del formato y personaliza las reglas del formato del objeto.
Nota: Ninguna.
Métodos mágicos relacionados con el descriptor
1.__get__()
Tiempo de activación: se activa cuando se obtiene el valor del atributo miembro de la operación del descriptor especificado.
Parámetros: 1. el objeto descriptor en sí, 2. el objeto donde se encuentran los atributos descritos por el descriptor y la clase del objeto descrito por el descriptor.
Valor de retorno: debe existir, de lo contrario no se puede obtener el valor del atributo correspondiente.
Nota: Sólo se utiliza en descriptores.
2.__set__()
Tiempo de activación: se activa cuando se establece o agrega el atributo de miembro de la operación de descriptor especificada.
Parámetros: 1 el objeto descriptor en sí, 2 el objeto donde se encuentra el atributo descrito por el descriptor, 3 el valor a establecer.
Valor de retorno: Ninguno
Nota: Solo se utiliza en descriptores.
3.__delete__()
Tiempo de activación: se activa cuando se elimina el atributo de miembro de la operación de descriptor especificada.
Parámetros: 1 el objeto descriptor en sí, 2 el objeto donde se encuentran las propiedades descritas por el descriptor.
Valor de retorno: Ninguno
Nota: Solo se utiliza en descriptores.
Métodos mágicos relacionados con operaciones de atributos
1.__getattr__()
Tiempo de activación: se activa cuando se obtiene un miembro de objeto inexistente.
Parámetros: 1 recibe el objeto actual en sí y el otro es una cadena para obtener el nombre del miembro.
Valor de retorno: Debe haber un valor.
Rol: Establece el valor utilizado para acceder a una propiedad inexistente.
Nota: getattribute se activará antes que getattr en cualquier momento. Si se dispara, no se volverá a disparar.
2.__setattr__()
Tiempo de activación: se activa cuando se establece el valor del miembro del objeto.
Parámetros: 1 self del objeto actual, uno es la cadena de nombre del miembro que se establecerá y el otro es el valor que se establecerá.
Valor de retorno: sin operación de proceso
Función: asumir la operación de configuración y realizar juicio y verificación antes de la configuración.
Nota: en el método actual, no puede usar el método miembro = valor para establecer miembros directamente; de lo contrario, se repetirá infinitamente y debe usar el método de configuración de objetos.
Objeto. __setattr__(parámetro 1, parámetro 2, parámetro 3)
3.__delattr__()
Tiempo de activación: se activa cuando se elimina el miembro del objeto.
Parámetro: el propio objeto actual.
Valor de retorno: Ninguno
Rol: Se puede verificar al eliminar miembros.
4.__getattribute__()
Tiempo de activación: se activa cuando se utiliza un miembro de objeto, independientemente de si el miembro existe.
Parámetros: 1 para recibir el objeto actual y uno para obtener la cadena de nombre del miembro.
Valor de retorno: debe tener
Función: cuando tiene operaciones de encapsulación (cuando está privatizado), se pueden abrir algunos derechos de acceso al programa.
5.__dir__()
Tiempo de activación: se activa cuando dir (objeto)
Parámetro: 1 recibe el objeto actual.
Valor de retorno: debe ser un tipo de secuencia (lista, tupla, conjunto, etc.)
Función: puede personalizar el valor de retorno de la lista de miembros.
Métodos mágicos relacionados con operaciones (modo Dios)
Métodos mágicos relacionados con operaciones de comparación
1.__lt__()
Formato:
p>def __lt__(self, other):
Datos devueltos
Características:
Tiempo de activación: se activa automáticamente cuando hay menos de la sentencia.
Parámetros: El primero de los dos parámetros es el yo, y el segundo es el segundo objeto de juicio.
Valor de retorno: El valor de retorno puede ser de cualquier tipo y se recomienda utilizar valor booleano.
Rol: Definir el comportamiento de menos de x
2.__le__()
Formato:
def __le__(self):
Cadena de retorno
Características:
Tiempo de activación: se activa automáticamente cuando se considera que es menor o igual.
Parámetros: El primero de los dos parámetros es el yo, y el segundo es el segundo objeto de juicio.
Valor de retorno: El valor de retorno puede ser de cualquier tipo y se recomienda utilizar valor booleano.
Rol: Define comportamiento menor o igual al símbolo x
3.__gt__()
Formato:
def __gt__(self ) :
Cadena de retorno
Características:
Tiempo de activación: se activa automáticamente cuando se considera mayor que.
Parámetros: El primero de los dos parámetros es el yo, y el segundo es el segundo objeto de juicio.
Valor de retorno: El valor de retorno puede ser de cualquier tipo y se recomienda utilizar valor booleano.
Rol: Definir el comportamiento del signo mayor que: x > Y llama a x.gt(y)
4.__ge__()
Formato:
def __ge__(self):
Cadena de retorno
Características:
Tiempo de activación: se activa automáticamente cuando es mayor o igual a.
Parámetros: El primero de los dos parámetros es el yo, y el segundo es el segundo objeto de juicio.
Valor de retorno: El valor de retorno puede ser de cualquier tipo y se recomienda utilizar valor booleano.
Rol: Definir el comportamiento del símbolo mayor o igual: x > = y llama a x.ge(y)
5.__eq__()
Formato:
def __eq__(self):
Cadena de retorno
Características:
Tiempo de activación: se activa automáticamente cuando se determina la igualdad.
Parámetros: El primero de los dos parámetros es el yo, y el segundo es el segundo objeto de juicio.
Valor de retorno: El valor de retorno puede ser de cualquier tipo y se recomienda utilizar valor booleano.
Rol: Define el comportamiento del símbolo mayor o igual: x == y llama a x.eq(y).
6.__ne__()
Formato:
def __ne__(self):
Cadena de retorno
Características:
Tiempo de activación: se activa automáticamente cuando se considera desigual.
Parámetros: El primero de los dos parámetros es el yo, y el segundo es el segundo objeto de juicio.
Valor de retorno: El valor de retorno puede ser de cualquier tipo y se recomienda utilizar valor booleano.
Función: define el comportamiento de la desigualdad: x! = y llama a x.ne(y)
Métodos mágicos relacionados con operaciones aritméticas
__add__(self, other) define el comportamiento de la suma: +
__sub__ (yo, otro) define el comportamiento de la resta:-
__mul__(yo, otro) define el comportamiento de la multiplicación:
__truediv__(yo, otro) define el comportamiento de la división verdadera : /
__floordiv__(self, other) define el comportamiento de la división de enteros://
__mod__(self, other) define el comportamiento del algoritmo modular: %
__divmod__ (yo, otro) define el comportamiento cuando lo llama divmod().
__pow__(self, other[, módulo]) define el comportamiento cuando lo llama power() o lo opera **.
__lshift__(self, other) define el comportamiento del desplazamiento bit a izquierda:
__rshift__(self, other) define el comportamiento del desplazamiento bit a derecha:> & gt
__and__(self, other) define el comportamiento de la operación bit a bit y:&;
__xor__(self, other) define el comportamiento de la operación bit a bit xor:
__or__( self, other) define el comportamiento de la operación OR bit a bit:|
Métodos mágicos relacionados con la operación inversa
__radd__(self, other) Igual que arriba, cuando el operando izquierdo no admite la llamada de operación correspondiente.
__rsub__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rmul__(self, other) Igual que arriba, llamado cuando el operando izquierdo no admite la operación correspondiente.
__rtruediv__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rfloordiv__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rmod__(self, other) Igual que arriba, llamado cuando el operando izquierdo no admite la operación correspondiente.
__rdivmod__(self, other) Igual que arriba, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rpow__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rlshift__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rrshift__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rand__(self, other) Igual que arriba, se llama cuando el operando izquierdo no admite la operación correspondiente.
__rxor__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
__ror__(self, other) Igual que el anterior, se llama cuando el operando izquierdo no admite la operación correspondiente.
Métodos mágicos relacionados con operaciones de asignación
__iadd__(self, other) define el comportamiento de la suma de asignaciones: +=
__isub__(self, other) define la asignación El comportamiento de la resta:-=
__imul__(self, other) define el comportamiento de la asignación de multiplicación:=
__itruediv__(self, other) define el comportamiento de la asignación de división verdadera:/ =
__ifloordiv__(self, other) define el comportamiento de la división de enteros de asignación://=
__imod__(self, other) define el comportamiento del algoritmo de módulo de asignación:% = p>
__ipow__(self, other[,modulo]) define el comportamiento de la exponenciación de asignación:* * =
__ilshift__(self, other) define el comportamiento de desplazamiento bit a izquierda de la asignación:
__irshift__(self, other) define el comportamiento de desplazamiento bit a derecha de la asignación:> & gt=
__iand__(self, other) define el comportamiento de operación bit a bit de la asignación:&;=
__ixor__(self, other) define el comportamiento de la operación xor bit a bit de asignación:=
__ior__(self, other) define el comportamiento de la operación bit a bit o de asignación:=
Métodos mágicos relacionados con operaciones unarias
__pos__(self) define el comportamiento del signo más: +x
__neg__(self) define el comportamiento del signo negativo: - incógnita.
__abs__(self) define el comportamiento cuando lo llama abs().
__invert__(self) define el comportamiento de la inversión bit a bit: ~x
Conversión de tipo jengibre mágico relacionado
__complex__(self) define el comportamiento de llamada complex() ( necesita devolver valores apropiados).
__int__(self) define el comportamiento cuando lo llama int() (necesita devolver el valor apropiado).
__float__(self) define su comportamiento cuando lo llama float() (necesita devolver un valor apropiado).
__round__(self[,n]) define el comportamiento cuando se llama a round() (debe devolver el valor apropiado).
__index(self)__ 1. El estilo plástico se logra cuando los objetos se aplican en expresiones de corte.
2. Si define un tipo numérico personalizado que se puede utilizar en el corte, entonces debe definir el índice.
3. Si el índice está definido, debe definir int y devolver el mismo valor.
Métodos mágicos relacionados con la gestión del contexto
__enter__() y __exit__()
Enter (self)
Definir el uso Inicialización. comportamiento cuando with declaración
2. El valor de retorno de enter está vinculado por el destino de la declaración with o el nombre después de as.
Salir(self, exctype, excvalue, traceback)
1. Defina qué debe hacer el administrador de contexto cuando se ejecuta o finaliza el bloque de código.
2. Generalmente se usa para manejar excepciones, limpiar el trabajo o realizar algún trabajo diario después de que se ejecuta el bloque de código.
Métodos mágicos relacionados con tipos de contenedores
__len__(self) define el comportamiento cuando lo llama len() (devuelve el número de elementos en el contenedor).
__getitem__(self, key) define el comportamiento de obtener el elemento especificado en el contenedor, que es equivalente a self[key].
__setitem__(self, clave, valor) define el comportamiento de configurar el elemento especificado en el contenedor, que es equivalente a self[clave] = valor.
_ _ item _ _ (self, key) define el comportamiento de eliminar el elemento especificado en el contenedor, equivalente a del self[key].
__iter__(self) define el comportamiento de los elementos en el contenedor al iterar.
__reversed__(self) define el comportamiento cuando se llama a Reversed().
__contains__(self, item) define el comportamiento (dentro o no dentro) cuando se utiliza el operador de prueba de miembros.
Categoría: Python orientado a objetos