Esiste una raccolta di nodi utilizzati per rappresentare gli
assegnamenti. Ogni istruzione di assegnamento nel codice sorgente
diventa un singolo nodo Assign nell'AST. L'attributo
nodes è una lista che contiene un nodo per ogni obiettivo dell'assegnamento.
Questo è necessario perché l'assegnamento può venire
concatenato, per esempio a = b = 2
. Ogni Node nella
lista sarà una di queste classi: AssAttr,
AssList, AssName o AssTuple.
Ciascun nodo obiettivo dell'assegnamento descriverà il tipo di oggetto per il quale è
stato assegnato: AssName per un nome semplice, per
esempio a = 1
. AssAttr per l'assegnamento di un
attributo, per esempio a.x = 1
. AssList ed
AssTuple rispettivamente per l'espansione di una lista o di una tupla,
per esempio a, b, c = a_tuple
.
I nodi obiettivo dell'assegnamento possiedono inoltre un attributo flags che indica se il nodo venga utilizzato per un assegnamento o per un'istruzione di cancellazione. AssName viene usato anche per rappresentare un'istruzione di cancellazione, ad esempio del x.
Quando un'espressione contiene alcuni riferimenti ad attributi, un'istruzione di assegnamento o cancellazione conterrà solo un nodo AssAttr - per il riferimento finale all'attributo. Gli altri riferimenti agli attributi verranno rappresentati come nodi Getattr nell'attributo expr dell'istanza AssAttr.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.