Articles of super

¿Por qué OrderedDict no usa super?

Podemos crear un OrderedCounter trivial utilizando la herencia múltiple: >>> from collections import Counter, OrderedDict >>> class OrderedCounter(Counter, OrderedDict): … pass … >>> OrderedCounter(‘Mississippi’).items() [(‘M’, 1), (‘i’, 4), (‘s’, 4), (‘p’, 2)] Corríjame si me equivoco, pero esto se basa fundamentalmente en el hecho de que Counter usa super : class Counter(dict): def __init__(*args, **kwds): […]

Diferentes formas de usar __init__ para PyQt4

Entonces … estoy trabajando para intentar pasar de Python básico a alguna progtwigción GUI, usando PyQt4. Estoy viendo un par de libros y tutoriales diferentes, y cada uno parece tener una forma ligeramente diferente de comenzar la definición de clase. Un tutorial comienza las clases así: class Example(QtGui.QDialog): def __init__(self): super(Example, self).__init__() Otro libro lo […]

¿Qué quiere decir con el ‘súper objeto devuelto no está enlazado’ en python?

De acuerdo con http://docs.python.org/2/library/functions.html#super , Si se omite el segundo argumento, el objeto super devuelto es independiente. Que es super (tipo). Me pregunto qué es ilimitado y cuándo está limitado.

¿Cómo hacer que funcione super () llenando manualmente la celda __class__?

En Python 3, se puede usar super() lugar de super(MyClass, self) , pero esto solo funciona en métodos que se definieron dentro de la clase. Como se describe en el artículo de Michele Simionato, el siguiente ejemplo no funciona: def __init__(self): print(‘calling __init__’) super().__init__() class C(object): __init__ = __init__ if __name__ == ‘__main__’: c = […]

Usando super () en clases anidadas

Imagina esto: class A(object): class B(object): def __init__(self): super(B, self).__init__() Esto crea un error: NameError: el nombre global B no está definido. He intentado AB , pero luego dice que A no está definido. Actualizar: He encontrado el problema. He tenido una clase como esta: class A(object): class B(object): def __init__(self): super(B, self).__init__() someattribute = […]

Python self y super en herencia múltiple.

En la charla de Raymond Hettinger, ” Super considerado súper habla ” en PyCon 2015, explica las ventajas de usar super en Python en el contexto de herencia múltiple. Este es uno de los ejemplos que Raymond utilizó durante su charla: class DoughFactory(object): def get_dough(self): return ‘insecticide treated wheat dough’ class Pizza(DoughFactory): def order_pizza(self, *toppings): […]

Python2 y Python3: __init__ y __new__

He leído otras preguntas que explican la diferencia entre __init__ y __new__ pero no entiendo por qué en el siguiente código con python 2: init y Python3: new init El código de muestra: class ExampleClass(): def __new__(cls): print (“new”) return super().__new__(cls) def __init__(self): print (“init”) example = ExampleClass()

Python 3.6: O se me escapa algo, ya sea la escritura genérica rompe el superencadenamiento por herencia

Primero ejecuté el siguiente código, que salió muy bien: class Monster: def __init__(self): self._can_do = [] print(“created a monster”) super().__init__() class Race(Monster): “”” all races must derive from this “”” def __init__(self): super().__init__() print(“created a race x”) class Human(Race): def __init__(self): super().__init__() self._can_do.append(“Do nothing special !”) print(“created a human”) class Elf(Race): def __init__(self): super().__init__() self._can_do.append(“Avoid […]

Subclasificando una lista en python

Estoy siguiendo un tutorial en línea y el código es el siguiente: class Hands(list): def __init__(self, size=0, die_class=None, *args, **kwargs): if not die_class: raise ValueError(“You must provide a die class”) super().__init__() for _ in range(size): self.append(die_class()) Básicamente, modela a un jugador con un número de dados ( size ) y qué dados tienen ( die_class […]

¿Qué es una clase de hermanos en Python?

La documentación de Python 2 dice que la función super () “devuelve un objeto proxy que delega las llamadas de método a una clase de tipo padre o hermana”. Las preguntas: ¿Qué es una clase de hermanos en Python? ¿Cómo delegas una llamada de método a una clase de hermanos? Mi presunción era que un […]