Articles of oop

Decorador Python en método de instancia

¿Alguien sabe qué está mal con este código? def paginated_instance_method(default_page_size=25): def wrap(func): @functools.wraps(func) def inner(self, page=1, page_size=default_page_size, *args, **kwargs): objects = func(self=self, *args, **kwargs) return _paginate(objects, page, page_size) return inner return wrap class Event(object): … @paginated_instance_method def get_attending_users(self, *args, **kwargs): return User.objects.filter(pk__in=self.attending_list) Obtuve el siguiente error: Traceback (most recent call last): File “”, line 1, […]

Características de vida útil del objeto Python

Nota: si conoce algún código de biblioteca (no elaborado) que haga lo que quiero, por favor ilumine a un progtwigdor de C / C ++, lo aceptaré como respuesta. Tengo una variable global configurada para una instancia de la siguiente clase. Su propósito es permitirme establecer algunos puntos de interrupción manuales para colocar algunos puntos […]

Python super llamada métodos secundarios

Hay numerosas preguntas sobre el uso de super() pero ninguna de ellas parece responder a mi pregunta. Cuando se llama a super().__init__() desde una subclase, todas las llamadas de método en el súper constructor se toman realmente de la subclase . Considere la siguiente estructura de clase: class A(object): def __init__(self): print(“initializing A”) self.a() def […]

Python: Diferencia entre métodos estáticos vs método de clase

Posible duplicado: ¿Cuál es la diferencia entre @staticmethod y @classmethod en Python? Estoy aprendiendo OOP en python y llegué a conocer estos dos métodos. Parece que la diferencia en términos de syntax es que los métodos de clase se pasan de forma implícita a la clase a la que pertenecen como su primer parámetro class […]

Pasar argumentos al constructor de superclase sin repetirlos en el constructor de clase de niño

class P(object): def __init__(self, a, b): self.a = a self.b = b class C(P): def __init__(self, c): P.__init__() self.c = c obj = C(a, b, c) #want to instantiate a C with something like this Quiero definir el objeto de la clase C sin volver a escribir todo el argumento del constructor de la clase […]

Pase el dataframe a través de las clases Tkinter

Estoy usando Python 2.7 y Tkinter. Soy casi nuevo en los progtwigs orientados a objetos. Tengo un progtwig largo con muchas ventanas Tkinter y en algún momento le pido al usuario que cargue un archivo de Excel que leí con Pandas, y quiero usar y actualizar de forma permanente ese valor (de una variable de […]

Acumulador estadístico en python

Un acumulador estadístico permite realizar cálculos incrementales. Por ejemplo, para calcular la media aritmética de un flujo de números dados en tiempos arbitrarios, se podría hacer un objeto que haga un seguimiento del número actual de elementos dados, n y su sum, sum . Cuando uno solicita la media, el objeto simplemente devuelve sum/n . […]

Pregunta general de progtwigción. ¿Cuándo usar OOP?

Mi progtwig necesita hacer 2 cosas. Extraer cosas de una página web. Hacer cosas con una página web. Sin embargo, hay muchas páginas web, como Twitter y Facebook. debo hacer esto? def facebookExtract(): code here def twitterExtract(): code here def myspaceExtract(): code here def facebookProcess(): code here def twitterProcess(): code here def myspaceProcess(): code here […]

Cómo organizar clases en la progtwigción de la GUI de pyqt

He construido una ventana principal GUI usando qt designer y pyqt. A medida que el progtwig se vuelve más complejo, el uso de una sola clase puede resultar en demasiados métodos y atributos para administrar. Pensé que debía construir nuevas clases para hacer las cosas más manejables. Mi primera pregunta es, ¿cómo puedo saber cuándo […]

¿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): […]