learn - ¿Clases de estilo antiguo y nuevo en Python 2.7?
this in python class (2)
Posible duplicado:
Estilo antiguo y nuevas clases de estilo en Python.
¿Cuál es la situación actual con las 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 . ¿Todavía tengo que preocuparme por esto? En general debo declarar mis clases como:
class MyClass:
pass
¿o?
class MyClass(object):
pass
Siempre debes usar nuevas clases de estilo. Las clases de nuevo estilo son parte de un esfuerzo por unificar los tipos incorporados y las clases definidas por el usuario en el lenguaje de programación Python.
Las nuevas clases de estilo tienen varias cosas que ofrecer, tales como:
- Propiedades: Atributos que están definidos por los métodos get / set
- Métodos estáticos y métodos de clase.
- El nuevo gancho getattribute , que, a diferencia de getattr , se llama para cada acceso de atributo, no solo cuando el atributo no se puede encontrar en la instancia
- Descriptores: Un protocolo para definir el comportamiento del acceso de atributos a través de objetos.
- Anulando el constructor nuevo
- Metaclases
Siempre subclase "objeto". Esas son nuevas clases de estilo.
Estás listo para Python 3 de esa manera.
Cosas como
.super()
funcionan correctamente de esa manera, en caso de que las necesite.