Per invertire le stringhe, Python non mette a disposizione nessuna funzione.

Però è comunque molto facile, utilizzando la "sintassi slice".

In sostanza è come se trattassimo la stringa come una lista.

L'ereditarietà in Python è leggermente diversa rispetto ad altri linguaggi.

Non si usano parole chiave tipo extends, ma si imposta come se fosse un parametro di una funzione.

Supponiamo di avere la generica classe Persona:

class Persona:
    nome = ''
    cognome = ''

    def __init__(self, nome, cognome):
        self.nome = nome
        self.cognome = cognome

    def getNome(self):
        print(self.nome)

    def getCognome(self):
        print(self.cognome)

Ho iniziato a giocare un pò con Tkinter, il package per la costruzione di GUI di default di Python.

In sostanza Tkinter viene già installato con Python (entrambe le versioni).

Specificando che useremo Python 3, ma anche che non dovrebbe cambiare molto rispetto alla 2, vediamo come scaricare un file tramite FTP.

Non useremo librerie esterne, ma useremo ftplib.

Per controllare la connessione a internet con Python, non abbiamo un modulo specifico.

Dobbiamo effettuare una richiesta ad un url, e verificare che sia andata a buon fine.

Per farlo possiamo usare il modulo urllib.

Specifico che siamo in Python 3.

La programmazione multi-threading in Python è abbastanza semplice usando il modulo threading!

Oggi vediamo qualche esempio in Python 3; ma dovrebbe essere abbastanza simile anche per la versione 2.

Nel primo esempio, i threads non sono sincronizzati, ed infatti l'output sarà una cosa del genere:

Inizio Thread 1
Inizio Thread 2
Thread 1: Mon Apr 24 14:04:58 2017
Thread 2: Mon Apr 24 14:04:59 2017
Thread 1: Mon Apr 24 14:04:59 2017
Thread 1: Mon Apr 24 14:05:00 2017
Thread 2: Mon Apr 24 14:05:01 2017
Thread 1: Mon Apr 24 14:05:01 2017
Thread 1: Mon Apr 24 14:05:02 2017
Fine Thread 1
Thread 2: Mon Apr 24 14:05:03 2017
Thread 2: Mon Apr 24 14:05:05 2017
Thread 2: Mon Apr 24 14:05:07 2017
Fine Thread 2
Fine del main thread

Per effettuare l'hashing delle stringhe in Python, possiamo avvalerci di un modulo apposito: hashlib!

Il suo utilizzo è molto semplice, e ci mette anche a disposizione delle funzioni per capire cosa è supportato a sistema, e cosa è sicuramente supportato dal modulo.

La gestione dei file temporanei in Python è abbastanza banale (come ci si poteva aspettare...).

E' possibile eseguire le operazioni necessarie usando un modulo apposito: tempfile!

Questo modulo ha diverse funzioni per la creazione di file temp, e noi useremo NamedTemporaryFile.

Questa variante, rispetto a TemporaryFile, garantisce un nome visibile al file creato.

Python, in entrambe le versioni, arriva già con un modulo che ci permette di eseguire il parsing degli argomenti da console: argparse!

In verità questo modulo non è l'unico, ma è di sicuro il più avanzato.

Oggi ne vediamo un esempio pratico; lo sto usando per un mio programma in cui richiedo all'utente:

  • un path iniziale
  • un path finale
  • la dimensione della larghezza
  • la dimensione dell'altezza

La necessità è quella di connettere Python a un database Oracle, su piattaforma Linux.

Avendo già installato unixODBC, ho deciso di usare quella connessione.

Per sapere come installare e configurare unixODBC su Linux per un db Oracle potete vedere qua.

Do quindi per scontato questo passaggio.