[Commits] python.it commit r306 - python/contrib/faq/trunk
commit a svn.python.it
commit a svn.python.it
Ven 19 Ott 2007 12:19:37 CEST
Author: manlio
Date: Fri Oct 19 12:19:36 2007
New Revision: 306
Modified:
python/contrib/faq/trunk/programming.ht
Log:
Rimossi i marcatori
Modified: python/contrib/faq/trunk/programming.ht
==============================================================================
--- python/contrib/faq/trunk/programming.ht (original)
+++ python/contrib/faq/trunk/programming.ht Fri Oct 19 12:19:36 2007
@@ -1,4 +1,3 @@
-.. [- MARK -] BEGIN PART 001 of 18
Title: FAQ sulla programmazione in Python
Content-type: text/x-rst
@@ -115,7 +114,6 @@
ricerca di import (in entrambe le forme) e cercando i moduli nel path
standard di Python oltre che nella directory sorgente (per i moduli
build-in). Successivamente trasforma
-.. [- MARK -] BEGIN PART 002 of 18
il bytecode dei moduli scritti in Python in codice C (array
iniziallizzarori che possono essere tradotti in oggetti codice
utilizzando il modulo marshal) e crea un file di configurazione
@@ -223,7 +221,6 @@
è più breve e veloce l'utilizzo di ::
L2 = list(L1[:3]) # "list" è ridondante se L1 è una lista.
-.. [- MARK -] BEGIN PART 003 of 18
Notare che l'utilizzo di costrutti built-in di tipo funzionale come
``map()``, ``zip()``, e altri, può fornire un'ottima accelerazione
@@ -326,7 +323,6 @@
cambiare, andrebbe usato solo se non ci si preoccupa di presentare
un'API confusionaria ai propri utenti.
-.. [- MARK -] BEGIN PART 004 of 18
Il Core del Linguaggio
==================
@@ -429,7 +425,6 @@
che il nome del modulo sia nello scope giusto. Usare un import per riga
rende semplice aggiungere e rimuovere import di moduli, d'altra parte
usare import multipli per riga
-.. [- MARK -] BEGIN PART 005 of 18
utilizza meno spazio a video.
È considerata buona pratica eseguire gli import nel seguente ordine:
@@ -533,7 +528,6 @@
return a, b # restituisce i nuovi valori
x, y = 'old-value', 99
-.. [- MARK -] BEGIN PART 006 of 18
x, y = func2(x, y)
print x, y # output: new-value 100
@@ -636,7 +630,6 @@
Come copiare un oggetto in Python?
------------------------------------------
-.. [- MARK -] BEGIN PART 007 of 18
In generale, si può provare copy.copy() o copy.deepcopy() nel caso generale.
Non tutti gli oggetti possono essere copiati, ma la maggior parte si.
@@ -733,7 +726,6 @@
Molti chiedono *perché* Python non abbia un'espressione if-then-else (NdT espressione, non istruzione!).
Ci sono parecchie risposte: molti linguaggi fanno benissimo anche senza;
-.. [- MARK -] BEGIN PART 008 of 18
essa può facilmente portare a codice meno leggibile; non è stata
trovata una sintassi abbastanza "Pythonica"; una ricerca nella libreria
standard ha trovato ben pochi luoghi dove l'uso di un'espressione
@@ -833,7 +825,6 @@
di Python: uno 0 precedente indica un numero ottale, e '0x' indica un
numero esadecimale.
-.. [- MARK -] BEGIN PART 009 of 18
Non usare la funzione built-in ``eval()`` se la necessità è solo quella
di convertire stringhe in numeri. ``eval()`` è parecchio più lenta,
e presenta un rischio di sicurezza: qualcuno potrebbe passare
@@ -935,7 +926,6 @@
f = locals()[fname]
f()
-.. [- MARK -] BEGIN PART 010 of 18
f = eval(fname)
f()
@@ -1042,7 +1032,6 @@
La funzione ``tuple(seq)`` converte qualunque sequenza (in realtà,
qualunque iterabile) in una tupla con gli stessi elementi nello stesso ordine.
-.. [- MARK -] BEGIN PART 011 of 18
Per esempio, ``tuple([1, 2, 3])`` produce ``(1, 2, 3)`` e ``tuple('abc')``
produce ``('a', 'b', 'c')``. Se l'argomento è una tupla, non verrà
creata una copia, ma restituito lo stesso oggetto, per cui chiamare
@@ -1145,7 +1134,6 @@
for x in List: d[x]=x
List = d.values()
-.. [- MARK -] BEGIN PART 012 of 18
Come si crea un array in Python?
----------------------------------------------------
Usando una lista::
@@ -1248,7 +1236,6 @@
import UserDict, string
-.. [- MARK -] BEGIN PART 013 of 18
class SortedDict(UserDict.UserDict):
def __repr__(self):
result = []
@@ -1351,7 +1338,6 @@
di oggetti tramite ereditarietà in un secondo momento. Si può avere una
classe generica ``Mailbox`` che fornisce i metodi di accesso basilari
a una mailbox, e sottoclassi come
-.. [- MARK -] BEGIN PART 014 of 18
``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` che gestiscono
i vari formati di mailbox specifici.
@@ -1451,7 +1437,6 @@
class X:
...
-.. [- MARK -] BEGIN PART 015 of 18
def __setattr__(self, name, value):
self.__dict__[name] = value
...
@@ -1550,7 +1535,6 @@
C() { cout << "No arguments\n"; }
C(int i) { cout << "Argument is " << i << "\n"; }
}
-.. [- MARK -] BEGIN PART 016 of 18
in Python, bisogna scrivere un singolo costruttore che catturi tutti i
casi tramite l'uso degli argomenti di default. Per esempio::
@@ -1653,7 +1637,6 @@
Un motivo per cui non viene creato il file ``.pyc`` potrebbe
essere un problema di permessi sulla directory. Ciò può accadere,
-.. [- MARK -] BEGIN PART 017 of 18
per esempio, se si sviluppa come un utente ma si esegue come un
altro utente, come quando si esegue il testing con un web server.
La creazione di un file .pyc è eseguita automaticamente se si importa
@@ -1754,7 +1737,6 @@
A van Rossum non piace molto questo approccio in quanto gli import
avvengono i luoghi strani, tuttavia esso funziona.
-.. [- MARK -] BEGIN PART 018 of 18
Matthias Urlichs raccomanda di ristrutturare il proprio codice in
modo da rendere gli import ricorsivi non necessari in primo luogo.
Maggiori informazioni sulla lista
Commits