Tengo que hacer un proyecto en python que sea compatible con la versión 2.7. hasta ahora usaba esta versión pero he llegado a un punto del código en el que me vendría genial poder usar @abstraclassmethod que solo está en la versión 3 en adelante.
Lo que quiero hacer es, dentro del código, tener en una variable la versión del intérprete y, en función de si es mayor o menor que 3, hacer una cosa u otra.
Aquí un fragmento de código:
Código:
El problema es que al ejecutar el código me dice que la variable _ModuloA__INTERPRETER_VERSION no está definida. Esto ya se que es por los dos guiones bajos.#dentro de ModuloA.py __INTERPRETER_VERSION = float(sys.version.split(" ")[0]) if(__INTERPRETER_VERSION >= 3): from abc import abstractclassmethod class AAA(object): .... if(__INTERPRETER_VERSION < 3): @classmethod def createPacket(cls, bArray, escaped): raise NotImplementedError("This method is not implemented in this class. See inheritance.") else: @abstractclassmethod def createPacket(cls, bArray, escaped): pass
Mis preguntas son:
1 - ¿Es buena idea hacer lo que estoy haciendo? ¿pongo simplemente la versión del 2.7 y ya está?
2 - ¿Cómo hago para definir una variable privada dentro del módulo y accederla dentro de las clases de dicho módulo?
Gracias, saludos.