Articles of class

¿Cómo creo una metaclase simple?

He estado haciendo Python por algún tiempo, y siempre he entendido un poco el significado de las metaclases, pero nunca he necesitado una. Ahora creo que la mejor solución para mi problema es una metaclase (corríjame si hay una mejor manera). Lo que estoy tratando de crear es un sistema que automáticamente agrega una variable […]

¿Clases de estilo antiguo y nuevo en Python 2.7?

Posible duplicado: Estilo antiguo y nuevas clases de estilo en Python. ¿Cuál es el estado actual de las cosas con clases de estilo nuevo y estilo antiguo en Python 2.7? No trabajo con Python a menudo, pero recuerdo vagamente el problema. La documentación no parece mencionar el problema en absoluto: El tutorial de Python: Clases […]

Clases de Python perdiendo atributos

Tengo un problema peculiar de python. Durante el curso de la ejecución de mi aplicación gtk python, algunos de mis objetos de clase pierden misteriosamente atributos, lo que hace que algunas de las funciones de mi progtwig se rompan. Es difícil dar una idea de por qué esto puede suceder: nunca elimino intencionalmente los atributos, […]

Usando super con un método de clase

Estoy tratando de aprender la función super () en Python. Pensé que lo entendía hasta que llegué a este ejemplo (2.6) y me encontré atrapado. http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#super-with-classmethod-example Traceback (most recent call last): File “”, line 1, in File “test.py”, line 9, in do_something do_something = classmethod(do_something) TypeError: unbound method do_something() must be called with B instance […]

Entendiendo la diferencia entre `self` y` cls` ya que se refieren a los mismos atributos

Estoy tratando de entender sus diferencias entre self y cls pero tengo problemas, incluso si existen muchos temas al respecto. Por ejemplo: class maclass(): A = “class method” def __init__(self): self.B = “instance method” def getA_s(self): print(self.A) def getA_c(cls): print(cls.A) def getB_s(self): print(self.B) def getB_c(cls): print(cls.B) C = maclass() C.getA_s() C.getA_c() C.getB_s() C.getB_c() que me […]

En Python, ¿cómo puedo heredar y anular un método en una instancia de clase, asignando esta nueva versión al mismo nombre que la anterior?

En matplotlib , un problema común son las líneas blancas no deseadas entre los objetos de Patch dibujados con pcolor , pcolormesh y contourf (vea este hilo para los dos primeros y este hilo para el último). He intentado solucionar esto automáticamente agregando nuevos métodos a mis instancias de clase / subclase de Axes usando […]

¿Es una buena idea usar la clase como espacio de nombres en Python?

Estoy poniendo un montón de cosas relacionadas en una clase. El propósito principal es organizarlos en un espacio de nombres. class Direction: north = 0 east = 1 south = 2 west = 3 @staticmethod def turn_right(d): return turn_to_the_right @staticmethod def turn_left(d): return turn_to_the_left # defined a short alias because direction will be used a […]

¿Por qué el __dict__ de instancias es mucho más pequeño en tamaño en Python 3?

En Python, los diccionarios creados para las instancias de una clase son muy pequeños en comparación con los diccionarios creados que contienen los mismos atributos de esa clase: import sys class Foo(object): def __init__(self, a, b): self.a = a self.b = b f = Foo(20, 30) Cuando se usa Python 3.5.2, las siguientes llamadas a […]

TypeError: no se puede convertir el objeto ‘int’ a str implícitamente al crear instancias de clase en el bucle for

Recibo el error “TypeError: No se puede convertir el objeto ‘int’ en str implícitamente” cuando se usa un bucle for para crear instancias de clase. Soy bastante nuevo en progtwigción y no he visto este error antes class Player(object): properties = [] def __init__( self, name, wealth, player_number): self.name = name self.wealth = wealth self.player_number […]

Python – yo, no yo y cls

Otra pregunta sobre para qué es el ‘yo’, qué sucede si no usas el ‘yo’ y para qué sirve ‘cls’. “Hice mi tarea”, solo quiero asegurarme de que la tengo toda. self : para acceder a un atributo de un objeto, debe prefijar el nombre del atributo con el nombre del objeto ( objname.attributename ). […]