[Python] Overloading "print"

Marco Beri marcoberi a gmail.com
Mar 4 Giu 2013 17:22:13 CEST


2013/6/4 Vittorio Spina <vittorio.spina a gmail.com>

 ho pensato a fare un overloading perchè non e' semplice cambiare tutti i
> print con un find&replace.
> la riga
>
> print "ciao mondo"
>
> dovrebbe diventare
>
> print_log("ciao mondo")
>
> e l'ultima parentesi tonda chiusa non saprei proprio come inserirla...
>

Il comando di Marco funziona ma solo se stampi una stringa e basta, se vuoi
stampare anche una variabile devi usare questo:

    :%s/\<print \(.*\)$/print_log("\1")/

Attenzione però, la tua funzione print_log deve essere definita così:

    def print_log(*args):

altrimenti non ti accetta più parametri come in questo caso:

    print "Ciao", pippo, "pluto"

Infatti questa riga diventerebbe:

    print_log("Ciao", pippo, "pluto")


Ciao.
Marco.
P.S. \< e \> in vim corrispondono al \b delle regex

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130604/7c90f037/attachment.html>


Maggiori informazioni sulla lista Python