elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Modificar código en tiempo de ejecución en función de la versión de python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Modificar código en tiempo de ejecución en función de la versión de python  (Leído 2,705 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Modificar código en tiempo de ejecución en función de la versión de python
« en: 7 Noviembre 2014, 09:32 am »

Hola a todos.

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:
#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

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.

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.


En línea

1quark1

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Modificar código en tiempo de ejecución en función de la versión de python
« Respuesta #1 en: 7 Noviembre 2014, 10:19 am »

A ver si te vale:

import sys
ver = sys.version
ver=  (ver)[:3]
#2.7
#3.3


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines