On 08/05/2013 10:06 AM, Gollum1 wrote:
Le parentesi sulla print sulla 3 le trovo, boh, scomode
qui ora parte una guerra di religione... :P

per quanto mi riguarda, avendo iniziato da poco ad usare python, è
solo una questione di abitudine, certo è che almeno si uniforma a
tutte le varie chiamate di funzione... era l'unica (credo) anomalia
nell'ambito delle chiamate di funzione.
Non c'e' alcuna anomalia. In Python 2 `print` non e' una funzione, ma una istruzione semplice:

http://docs.python.org/2/reference/simple_stmts.html#the-print-statement

Non puoi usarla all'interno di una espressione:

    >>> print('Vero') if True else print('Falso') # Python 2
      File "<stdin>", line 1
        print('Vero') if True else print('Falso') # Python 2
                                       ^
    SyntaxError: invalid syntax


Non essendo una etichetta, ma una parola chiave:

    >>> from keyword import kwlist # Python 2
    >>> 'print' in kwlist
    True

non puoi assegnarle un altro oggetto:

    >>> print = 33
      File "<stdin>", line 1
        print = 33
              ^
    SyntaxError: invalid syntax


A partire da Python 3 e' invece una funzione (e' una etichetta che fa riferimento
ad una funzione):

http://docs.python.org/3.0/whatsnew/3.0.html#print-is-a-function

Puoi quindi usarla all'interno di una espressione, come tutte le altre funzioni:

    >>> print('Vero') if True else print('Falso') # Python 3
    Vero

Visto che e' una etichetta (un nome), puoi assegnarle un altro oggetto, come per
tutte le altre etichette:

    >>> print_ = print # Python 3
    >>> print = 33
    >>> print
    33
    >>> print_
    <built-in function print>
    >>> print_('python')
    python
    >>> print = sum
    >>> sum(range(5))
    10

Non e' per nulla scomoda, e quando si inizia a programmare con Python 3 ci si rende conto
immediatamente di quanto questo sia più intiutivo rispetto a Python 2

--
Marco Buttu

INAF Osservatorio Astronomico di Cagliari
Loc. Poggio dei Pini, Strada 54 - 09012 Capoterra (CA) - Italy
Phone: +39 070 71180255
Email: mbu...@oa-cagliari.inaf.it

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a