Articles of super

La herencia de Python 2.x super __init__ no funciona cuando el padre no hereda del objeto

Tengo el siguiente código de Python 2.7: class Frame: def __init__(self, image): self.image = image class Eye(Frame): def __init__(self, image): super(Eye, self).__init__() self.some_other_defined_stuff() Estoy tratando de extender el __init__() para que cuando cree un “Ojo” haga un montón de otras cosas (self.some_other_defined_stuff ()), además de lo que Frame configura. Frame.__init__() debe ejecutarse primero. Obtuve el […]

herencia múltiple de Python que pasa argumentos a los constructores usando super

Considere el siguiente fragmento de código de Python class A(object): def __init__(self, a): self.a = a class B(A): def __init__(self, a, b): super(B, self).__init__(a) self.b = b class C(A): def __init__(self, a, c): super(C, self).__init__(a) self.c = c class D(B, C): def __init__(self, a, b, c, d): #super(D,self).__init__(a, b, c) ??? self.d = d Me […]

Segundo parámetro de super ()?

Un colega mío escribió un código análogo al siguiente de hoy, me pidió que echara un vistazo y me llevó un tiempo descubrir el error: class A(): def __init__(self): print(‘A’) class B(A): def __init__(self): super(B).__init__() b = B() El problema aquí es que no hay ningún parámetro para super() en el constructor de B Lo […]

¿Por qué se usa tanto el super en PySide / PyQt?

Versión corta (tl; dr) Estoy aprendiendo PySide, y la mayoría de los tutoriales en línea usan super para inicializar los elementos de la interfaz de usuario. ¿Es esto importante (es decir, más escalable) o es una cuestión de gusto? Aclaración : como aclaro más en la versión detallada, este no es otro hilo genérico que […]

TypeError: Super no toma argumentos de palabras clave?

Primero, aquí está mi código: class Enemy(): def __init__(self, name, hp, damage): self.name = name self.hp = hp self.damage = damage def is_alive(self): “””Checks if alive””” return self.hp > 0 class WildBoar(Enemy): def __init__(self): super(WildBoar, name=”Wild Boar”, hp=10, damage=2).__init__() class Marauder(Enemy): def __init__(self): super(Marauder, name=”Marauder”, hp=20, damage=5).__init__() class Kidnappers(Enemy): def __init__(self): super(Kidnappers, name=”The Kidnappers”, hp=30, […]

Python 2.7 super () error

Tratando de crear la ventana Tkinter usando super (). Me sale este error: super (Application, self) ._ init _ (master) TypeError: debe ser type, no classobj Código: import Tkinter as tk class Application(tk.Frame): def __init__(self, master): super(Application, self).__init__(master) self.grid() def main(): root = tk.Tk() root.geometry(‘200×150’) app = Application(root) root.mainloop() main()

Propiedad de clase padre y super Python

Estoy teniendo un problema realmente extraño con Python super () y la herencia y las propiedades. Primero, el código: #!/usr/bin/env python3 import pyglet import pygame class Sprite(pyglet.sprite.Sprite): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.rect = pygame.Rect(0, 0, self.width, self.height) self.rect.center = self.x, self.y @property def x(self): return super().x @x.setter def x(self, value): super(Sprite, self.__class__).x.fset(self, value) […]

¿Cómo funciona la herencia múltiple con los argumentos super () y diferentes __init __ ()?

Solo estoy sumergiéndome en algunos temas más avanzados de python (bueno, avanzado para mí al menos). Ahora estoy leyendo acerca de la herencia múltiple y cómo puedes usar super (). Más o menos entiendo la forma en que se usa la función super, pero (1) ¿Qué tiene de malo hacerlo de esta manera ? class […]

¿Cómo llamar a super método de la clase de nieto?

Estoy trabajando con un código que tiene 3 niveles de herencia de clase. Desde la clase derivada de nivel más bajo, ¿cuál es la syntax para llamar a un método 2 para elevar la jerarquía, por ejemplo, una llamada super.super? La clase “media” no implementa el método que necesito llamar.

¿Está super () roto en Python-2.x?

A menudo se dice que super debería evitarse en Python 2. Al usar super en Python 2, descubrí que nunca actúa de la manera que espero a menos que proporcione todos los argumentos, como el ejemplo: super(ThisClass, self).some_func(*args, **kwargs) Me parece que esto derrota el propósito de usar super() , ni es más conciso, ni […]