![Previous Page](../icons/previous.png) |
![Up One Level](../icons/up.png) |
![Next Page](../icons/next.png) |
La libreria di riferimento di Python |
![Contents](../icons/contents.png) |
![Module Index](../icons/modules.png) |
![Index](../icons/index.png) |
12.17.1 Oggetti Packer
Le istanze di Packer hanno i seguenti metodi:
-
Restituisce il buffer corrente compattato sotto forma di stringa.
-
Azzera il buffer compattato in una stringa vuota.
In generale è possibile impacchettare tutti i più comuni tipi di dati
XDR chiamando il metodo pack_type()
appropriato. Ogni
metodo accetta un singolo argomento, il valore da impacchettare.
Vengono supportati i seguenti metodi di impacchettamento di tipi di
dati semplici: pack_uint(), pack_int(),
pack_enum(), pack_bool(), pack_uhyper() e
pack_hyper().
-
Impacchetta i valori numerici in virgola mobile presenti in
value in precisione singola.
-
Impacchetta i valori numerici in virgola mobile presenti in
value in precisione doppia.
I seguenti metodi supportano l'impacchettamento di stringhe, bytes e
dati poco chiari:
-
Impacchetta una stringa s di lunghezza fissa. n è la
lunghezza della stringa ma non viene impacchettata nel buffer
dei dati. Se è necessario garantire l'allineamento a 4 byte, la
stringa viene riempita da byte null.
-
Impacchetta un flusso di dati poco chiari di lunghezza fissa,
similmente a pack_fstring().
-
Impacchetta una stringa s di lunghezza variabile. La lunghezza
della stringa viene prima impacchettata come intero senza segno, in
seguito i dati della stringa vengono impacchettati con
pack_fstring().
-
Impacchetta una stringa di dati poco chiari di lunghezza variabile,
similmente a pack_string().
-
Impacchetta un flusso di byte di lunghezza variabile, similmente a
pack_string().
I seguenti metodi supportano l'impacchettamento di array e liste:
pack_list( |
list, pack_item) |
-
Impacchetta una lista, list, di elementi omogenei. Questo
metodo risulta utile per liste di dimensioni indeterminate. Ad
esempio la dimensione non è disponibile finché la lista non viene
elaborata. Per ogni elemento della lista viene impacchettato prima un
intero
1
senza segno, seguito dal valore dei dati presi dalla
lista. pack_item è la funzione chiamata per impacchettare
ogni elemento. Al termine della lista viene impacchettato un
intero 0
senza segno.
Ad esempio per impacchettare una lista di interi il codice potrebbe
apparire così:
import xdrlib
p = xdrlib.Packer()
p.pack_list([1, 2, 3], p.pack_int)
pack_farray( |
n, array, pack_item) |
-
Impacchetta una lista di lunghezza fissa (array) di elementi
omogenei. n è la lunghezza della lista; non viene
impacchettata nel buffer ma se
len(array)
non è uguale a
n viene sollevata un'eccezione ValueError.
Come precedentemente descritto, pack_item è la funzione chiamata
per impacchettare ogni elemento.
pack_array( |
list, pack_item) |
-
Impacchetta una lista list di lunghezza variabile di elementi
omogenei. Prima la lunghezza della lista viene impacchettata come
intero senza segno, quindi ogni elemento viene impacchettato come nel
metodo pack_farray() già visto.
![Previous Page](../icons/previous.png) |
![Up One Level](../icons/up.png) |
![Next Page](../icons/next.png) |
La libreria di riferimento di Python |
![Contents](../icons/contents.png) |
![Module Index](../icons/modules.png) |
![Index](../icons/index.png) |
Release 2.3.4, documentation updated on 21. maggio 2005.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.