Python 2.7 ha raggiunto la fine del supporto
e verrà
ritirato
il 31 gennaio 2026. Dopo il ritiro, non potrai eseguire il deployment di applicazioni Python 2.7, anche se la tua organizzazione ha utilizzato in precedenza un criterio dell'organizzazione per riattivare i deployment di runtime legacy. Le tue applicazioni Python 2.7 esistenti continueranno a essere eseguite e a ricevere traffico dopo la
data di ritiro. Ti consigliamo di
eseguire la migrazione all'ultima versione supportata di Python.
Funzioni del modulo Messaggi
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Il pacchetto protorpc.messages
fornisce la seguente funzione di utilità posizionale:
- find_definition(name, relative_to=None)
-
Trova la definizione per nome nello spazio del modulo.
L'algoritmo di ricerca trova le definizioni per nome rispetto a una definizione di messaggio o per nome completo. Se non viene trovata alcuna definizione relativa al parametro relative_to
, viene eseguita una ricerca nel contenitore di relative_to
. Se relative_to
è un messaggio nidificato, viene cercata la relativa definizione del messaggio (message_definition()). Se il messaggio non ha una definizione del messaggio, viene cercato il relativo modulo. Se relative_to
è un modulo, l'algoritmo di ricerca cerca il modulo contenente e le relative ricerche. Se il modulo è un modulo di primo livello, l'algoritmo di ricerca cerca un messaggio utilizzando un nome completo. Se non viene trovato alcun messaggio, la ricerca non va a buon fine e il metodo genera un DefinitionNotFoundError.
Ad esempio, quando cerchi una definizione foo.bar.ADefinition
relativa a una definizione di messaggio effettiva abc.xyz.SomeMessage
:
find_definition('foo.bar.ADefinition', SomeMessage)
Gli argomenti di questo metodo seguono uno schema simile a una ricerca di nomi completi:
abc.xyz.SomeMessage. foo.bar.ADefinition
abc.xyz. foo.bar.ADefinition
abc. foo.bar.ADefinition
foo.bar.ADefinition
Quando risolve il nome rispetto alle definizioni e ai moduli dei messaggi, l'algoritmo cerca eventuali messaggi o sottomoduli trovati nel percorso, ignorando i valori non di tipo Message.
Un nome che inizia con '.'
è considerato un nome completo. L'algoritmo di ricerca inizia a cercare dal pacchetto più alto. Ad esempio, supponiamo due tipi di messaggi:
abc.xyz.SomeMessage
xyz.SomeMessage
La ricerca di .xyz.SomeMessage
in relazione a abc
risolve in xyz.SomeMessage
e non in abc.xyz.SomeMessage
. Per questo tipo di nome,
il parametro relative_to viene ignorato e impostato sempre su None.
Per ulteriori informazioni sulla risoluzione dei nomi dei pacchetti, consulta lo Specificatore del pacchetto Protocol Buffers.
Argomenti
- name
- Nome di una definizione da trovare. Può essere completo o relativo.
- relative_to
- Cerca una definizione relativa alla definizione del messaggio o al modulo. Se è Nessuno, viene eseguita una ricerca del nome completo.
Restituisce una definizione di classe Enum o Message associata al nome.
genera un DefinitionNotFoundError se non viene trovata alcuna definizione in nessun percorso di ricerca.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-11 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-11 UTC."],[[["\u003cp\u003eThe \u003ccode\u003efind_definition\u003c/code\u003e function in \u003ccode\u003eprotorpc.messages\u003c/code\u003e locates definitions by name, either relative to a message or module or by a fully qualified name.\u003c/p\u003e\n"],["\u003cp\u003eThe search algorithm for \u003ccode\u003efind_definition\u003c/code\u003e prioritizes searching relative to the \u003ccode\u003erelative_to\u003c/code\u003e parameter, progressing up the module hierarchy if necessary and then falling back to searching by fully qualified name.\u003c/p\u003e\n"],["\u003cp\u003eA name starting with \u003ccode\u003e'.'\u003c/code\u003e in \u003ccode\u003efind_definition\u003c/code\u003e is treated as fully qualified, starting the search from the topmost package and ignoring the \u003ccode\u003erelative_to\u003c/code\u003e parameter.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003efind_definition\u003c/code\u003e method requires two arguments: \u003ccode\u003ename\u003c/code\u003e, which can be fully qualified or relative, and \u003ccode\u003erelative_to\u003c/code\u003e, that specifies a definition to start the search from.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003efind_definition\u003c/code\u003e will return an \u003ccode\u003eEnum\u003c/code\u003e or \u003ccode\u003eMessage\u003c/code\u003e class definition, and in case a definition cannot be found, it will raise a \u003ccode\u003eDefinitionNotFoundError\u003c/code\u003e exception.\u003c/p\u003e\n"]]],[],null,[]]