[pyar] Dudas sobre Clase y Herencia

Joaquin Sorianello soriasoft en gmail.com
Mie Jun 9 00:21:29 ART 2010


2010/6/8 Roberto Bozzacchi <robbie en metasigno.com>:

> Este código si me funciona bien....
> Que opinan?


Que los e-mails en texto plano y sin colores son mas lindos!

(Solo una opinión)

Vamos al codigo:

En mi opinión no necesitas construir una clase para eso, con una
función estas hecho, y es mucho mas "entendible".
fijate en [1] tenes un ejemplo generico y uno para cada plataforma.

Si lo pensas como un objeto podria ser algo mas del tipo:

import serial

class PortScanner(object):
    """
    Crea una lista de puertos disponibles,
    devuelve una representación legible
    """
    name = 'PortScanner'
    def __init__(self):
        self.available_ports = []
        self.scan_ports()

    def scan_ports(self):
        """Inicializa los puertos serie disponibles"""

        for i in xrange(0, 256):
            try:
                puerto = serial.Serial(i)
                self.available_ports.append((i, puerto.portstr))
                puerto.close()
            except serial.SerialException:
                pass

    def __repr__(self):
        "devuelve una representacion del objeto Port Scanner"
        header = "Found ports:\n" \
               "+------+-------------+\n"\
               "| Num  | Description |\n"\
               "+------+-------------+\n"
        return header + ''.join(["| %4d | %s  |\n" %port_d for port_d
in self.available_ports])


if __name__=='__main__':
    Port = PortScanner()
    print Port.name
    print Port


y la salida es:

calabaza en calabaza-desktop:~$ python serial_scanner.py
PortScanner
Found ports:
+------+-------------+
| Num  | Description |
+------+-------------+
|    0 | /dev/ttyS0  |
|    1 | /dev/ttyS1  |
|    2 | /dev/ttyS2  |
|    3 | /dev/ttyS3  |



[1]http://pyserial.sourceforge.net/examples.html


- -
Joaquín Sorianello

Sea libre, use software libre



More information about the pyar mailing list