3.6 types -- Nomi per i tipi built-in

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:

NoneType
Il tipo None.

TypeType
Il tipo del tipo di oggetto (come restituito anche da type()).

BooleanType
Il tipo dei booleani True e False; questo è un alias della funzione built-in bool. Nuovo nella versione 2.3.

IntType
Il tipo degli interi (p.es. 1).

LongType
Il tipo degli interi long (p.es. 1L).

FloatType
Il tipo dei numeri in virgola mobile (p.es. 1.0).

ComplexType
Il tipo dei numeri complessi (p.es. 1.0j). Questo è non definito se Python viene compilato senza il supporto per i numeri complessi.

StringType
Il tipo delle le stringhe di caratteri (p.es. 'Spam').

UnicodeType
Il tipo dei caratteri stringa Unicode (p.es. u'Spam'). Questo tipo è non definito se Python viene compilato senza il supporto per l'Unicode.

TupleType
Il tipo delle tuple (p.es. (1, 2, 3, 'Spam')).

ListType
Il tipo delle liste (p.es. [0, 1, 2, 3]).

DictType
Il tipo dei dizionari (p.es. {'Bacon': 1, 'Ham': 0}).

DictionaryType
Un nome alternativo per definire DictType.

FunctionType
Il tipo delle funzioni definite dall'utente e delle lambda.

LambdaType
Un nome alternativo per FunctionType.

GeneratorType
Il tipo degli oggetti generator-iter (NdT: generatori di sequenze), prodotto dalla chiamata di una funzione generatrice. Nuovo nella versione 2.2.

CodeType
Il tipo del codice oggetto, come quello restituito da compile().

ClassType
Il tipo delle classi definite dall'utente.

InstanceType
Il tipo delle istanze di classi definite dall'utente.

MethodType
Il tipo dei metodi delle istanze di classi definite dall'utente.

UnboundMethodType
Un nome alternativo per MethodType.

BuiltinFunctionType
Il tipo delle funzioni built-in come len() o sys.exit().

BuiltinMethodType
Un nome alternativo per le BuiltinFunction.

ModuleType
Il tipo dei moduli.

FileType
Il tipo degli oggetti file aperti come sys.stdout.

XRangeType
Il tipo di oggetti intervallo restituiti da xrange().

SliceType
Il tipo di oggetti restituiti da slice().

EllipsisType
Il tipo di Ellipsis.

TracebackType
Il tipo degli oggetti tracebak come quelli che si possono trovare in sys.exc_traceback.

FrameType
Il tipo degli oggetti frame (struttura) come quelli che si trovano in tb.tb_frame se tb è un oggetto traceback.

BufferType
Il tipo degli oggetti buffer creati dalla funzione buffer().

StringTypes
Una sequenza contenente 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.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.