Articles of subclase de

¿Por qué no puedo subclasificar tuple en python3?

Vamos a comenzar esta pregunta diciendo que debe usar __new__ lugar de __init__ para subclasificar objetos inmutables . Dicho esto, veamos el siguiente código: class MyTuple(tuple): def __init__(self, *args): super(MyTuple, self).__init__(*args) mytuple = MyTuple([1,2,3]) Esto funciona en python2, pero en python3 obtengo: Traceback (most recent call last): File “tmp.py”, line 5, in mytuple = MyTuple([1,2,3]) […]

Python ABCs: registro vs. subclasificación

(Estoy usando python 2.7) La documentación de python indica que puede pasar una asignación al dictado incorporado y copiará esa asignación en el nuevo dict: http://docs.python.org/library/stdtypes.html#mapping-types-dict Tengo una clase que implementa el Mapeo ABC, pero falla: import collections class Mapping(object): def __init__(self, dict={}): self.dict=dict def __iter__(self): return iter(self.dict) def __iter__(self): return iter(self.dict) def __len__(self): return […]

Algunas funciones de Numpy devuelven ndarray en lugar de mi subclase

Estoy subclasificando la clase ndarray de Numpy, agregando algunos metadatos y métodos adicionales. Estoy tratando de seguir las instrucciones de este artículo y ese . Sin embargo, algunas funciones de Numpy (o Scipy) devuelven la clase base “ndarray” en lugar de mi subclase personalizada. Otras funciones de Numpy devuelven mi subclase, y no sé cuál […]

Subclase dict: UserDict, dict o ABC?

¿Cuál es la diferencia entre UserDict , dict y ABC y cuál se recomienda? Los documentos parecen desaprobar UserDict ? También parece que la update() de UserDict update() usaría mi método setitem mientras que dict no. ¿Qué métodos son realmente esenciales para anular, dado que quiero setitem personalizado y funciones getitem ? ¿Con ABC s […]

Python: ¿Cómo funciona realmente la herencia de __slots__ en subclases?

En la sección de referencia del modelo de datos de Python en las ranuras hay una lista de notas sobre el uso de __slots__ . Estoy confundido por los puntos 1 y 6, porque parecen estar contradiciéndose entre sí. Primer elemento: Cuando se hereda de una clase sin __slots__ , el atributo __dict__ de esa […]

Evite especificar todos los argumentos en una subclase

Tengo una clase: class A(object): def __init__(self,a,b,c,d,e,f,g,………..,x,y,z) #do some init stuff Y tengo una subclase que necesita un argumento adicional (la última W ) class B(A): def __init__(self.a,b,c,d,e,f,g,………..,x,y,z,W) A.__init__(self,a,b,c,d,e,f,g,………..,x,y,z) self.__W=W Parece tonto escribir todo este código de la placa de la caldera, por ejemplo, pasar todos los argumentos del Ctor de B a la llamada […]

La instancia es un “objeto”, pero la clase no es una subclase de “objeto”: ¿cómo es esto posible?

¿Cómo es posible tener una instancia de una clase que es un object , sin que la clase sea una subclase de object ? Aquí hay un ejemplo: >>> class OldStyle(): pass >>> issubclass(OldStyle, object) False >>> old_style = OldStyle() >>> isinstance(old_style, object) True

subclase de python acceso a la variable de clase del padre

Me sorprendió saber que una variable de clase de una subclase no puede acceder a una variable de clase del padre sin indicar específicamente el nombre de clase del padre: >>> class A(object): … x = 0 … >>> class B(A): … y = x+1 … Traceback (most recent call last): File “”, line 1, […]

¿Cómo verifico (en tiempo de ejecución) si una clase es una subclase de otra?

Digamos que tengo un Traje de clase y cuatro subclases de traje: Corazón, Espada, Diamante, Club. class Suit: … class Heart(Suit): … class Spade(Suit): … class Diamond(Suit): … class Club(Suit): … Tengo un método que recibe una demanda como parámetro, que es un objeto de clase, no una instancia. Más precisamente, puede recibir solo uno […]

Aplicar variables de clase en una subclase

Estoy trabajando en extender el marco web de Python webapp2 para que App Engine incluya algunas características que faltan (para que crear aplicaciones sea un poco más rápido y más fácil). Uno de los requisitos aquí es que cada subclase necesita tener algunas variables de clase estáticas específicas. ¿Es la mejor manera de lograr esto […]