Questo modulo definisce i nomi per alcuni tipi di oggetto che vengono
usati dall'interprete standard di Python, ma non per i tipi definiti
da diversi moduli di estensione. Inoltre, non include alcuni tipi che
si presentano durante l'esecuzione come il tipo listiterator
.
È buona norma usare "from types import *" -- il modulo non
esporta alcun nome oltre a quelli qui elencati. Nuovi nomi esportati
da versioni future di questo modulo, verrannoo tutti inseriti in
"Type".
Un uso tipico è per funzioni che svolgono differenti compiti in base ai loro tipi di argomento, come la seguente:
from types import * def delete(mialista, elemento): if type(elemento) is IntType: del mialista[elemento] else: mialista.remove(elemento)
A partire da Python 2.2, funzioni fattoriali built-in come int() e str() vengono considerate anche nomi per indicare i tipi corrispondenti. Questo è il metodo attualmente preferito per accedere al tipo, piuttosto che usare il modulo types. In accordo con queste considerazioni, l'esempio precedente dovrebbe potersi scrivere come segue:
def delete(mialista, elemento): if isinstance(elemento, int): del mialista[elemento] else: mialista.remove(elemento)
Il modulo definisce i seguenti nomi:
None
.
True
e False
; questo è un
alias della funzione built-in bool.
Nuovo nella versione 2.3.
1
).
1L
).
1.0
).
1.0j
). Questo è non
definito se Python viene compilato senza il supporto per i numeri
complessi.
'Spam'
).
u'Spam'
). Questo
tipo è non definito se Python viene compilato senza il supporto per
l'Unicode.
(1, 2, 3, 'Spam')
).
[0, 1, 2, 3]
).
{'Bacon': 1, 'Ham': 0}
).
DictType
.
FunctionType
.
MethodType
.
BuiltinFunction
.
sys.stdout
.
Ellipsis
.
sys.exc_traceback
.
tb.tb_frame
se tb
è un oggetto traceback.
StringType
e UnicodeType
, usata
per facilitare il controllo di ogni oggetto stringa. Il suo utilizzo è
più portabile rispetto a quello di utilizzare una sequenza di due tipi
stringa costruiti altrove, poichè contiene soltanto UnicodeType
,
se viene costruita mediante la versione corrente di Python. Per esempio:
isinstance(s, types.StringTypes)
.
Nuovo nella versione 2.2.