[Python] Dubbio

Manlio Perillo manlio_perillo a libero.it
Lun 20 Giu 2011 20:51:09 CEST


Il 20/06/2011 17:48, Fabio Giudici ha scritto:
> Salve,
> ho appena iniziato a studiare Python, utilizzo il manuale: "Pensare da
> informatico, Imparare con Python" però avrei dei dubbi e vorrei dei
> chiarimenti su alcuni punti.
> Questi argomenti poco chiari a me sono: il comando raw_input,
> l'incapsulamento e la generalizzazione...

Hai letto la documentazione della funzione raw_input?
Dall'interprete puoi anche fare:
>>> help(raw_input).

La funzione è chiamata raw_input, perchè esiste una funzione chiamata
input che non solo legge una stringa dallo standard input, ma la valuta
pure (di nuovo, leggi la documentazione, insieme a quella della funzione
eval).

La funzione input viene spesso sconsigliata per motivi di sicurezza,
dato che può eseguire codice arbitrario;
http://web.archiveorange.com/archive/v/5H3d1E9kZP30yPTGM5EV


Per quanto riguarda l'incapsulamento, è un argomento lungo.
Eccoti un assaggio:

def make_counter(counter=0):
    # Adapted from ANSI Common Lisp example in chapter 6.5, page 108
    def reset():
        nonlocal counter

        counter = 0
        return counter

    def stamp():
        nonlocal counter

        counter = counter + 1
        return counter

    return reset, stamp

reset, stamp = make_counter()
print (stamp(), stamp(), reset(), stamp())


Per incrementare il contatore, puoi solo utilizzare le funzioni esposte.

Richiede Python 3.x.


La generalizzazione è un argomento ancora più vasto...



Ciao  Manlio


Maggiori informazioni sulla lista Python