2011-02-18 8 views
5

Actualmente estoy aprendiendo Python 2.6.5 y me enteré sobre las clases de estilo antiguo y las nuevas clases de estilo.Python: ¿necesito aprender sobre las clases de estilo antiguo?

entiendo que estas clases todavía están existiendo sólo para compatibilidad con versiones anteriores y que se eliminan en Python 3.

Así que la pregunta es la siguiente: como un recién llegado a la lengua, necesito para aprender sobre la Clases clasicas?

P.S. Estoy aprendiendo Python 2 porque Python 3 todavía no es totalmente compatible con frameworks y también quiero aprender algunos frameworks. El plan será pasar a Python 3 cuando los marcos se pongan al día, pero hasta entonces, ¿debo preocuparme por las clases de estilo anteriores?

Respuesta

13

No. No te molestes. Simplemente herede todas sus clases de object (o de las clases que heredan de object) y estará listo. Luego, cuando hagas la transición a Python 3, puedes olvidar ese poco de sintaxis.

No hay ninguna ventaja al usar o incluso aprender sobre las clases antiguas en este punto.

así que asegúrese de todas sus declaraciones de clase tener este aspecto:

class foo(object): 
    ... 

(o heredan de algo que no sea object cuales hace Heredar del object), y luego pretender que esta es la forma en que se ¡siempre ha sido!

4

Aunque estoy de acuerdo con Daniel DiPaolo en que nunca debe necesitar usar clases de estilo antiguo en su código, habrá ocasiones en que necesitará comprenderlas un poco.

Por ejemplo, con las clases antiguas no se puede usar super para llamar a un método principal, y esto puede morder cuando intenta y subclase, por ejemplo, la clase urllib2.Request. Si haces esto sin darte cuenta obtendrás el críptico error super() argument 1 must be type, not classobj, que puede tardar años en depurarse.

(Como seguramente se puede decir, yo he estado allí ...)

+0

1: http://www.artima.com/weblogs/viewpost.jsp?thread=237121 –

Cuestiones relacionadas