メッセージ モジュール関数
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
protorpc.messages
パッケージは、次の位置ユーティリティ関数を提供します。
- find_definition(name, relative_to=None)
-
モジュール空間内を定義の名前で検索します。
検索アルゴリズムは、メッセージ定義に関連した名前または完全修飾名で定義を検索します。relative_to
パラメータに関連した定義が見つからない場合は、relative_to
のコンテナに対して検索を実行します。relative_to
がネストされた Message である場合は、その Message の message_definition() を検索します。そのメッセージに message_definition() がない場合は、そのメッセージのモジュールを検索します。relative_to
がモジュールの場合、検索アルゴリズムは上位のモジュールを検索し、そのモジュールに対して相対的に検索します。モジュールが最上位モジュールである場合、検索アルゴリズムは完全修飾名を使用してメッセージを検索します。それでもメッセージが見つからない場合、検索は失敗し、メソッドは DefinitionNotFoundError を送出します。
たとえば、次のように、実際のメッセージ定義 abc.xyz.SomeMessage
に対して相対的な定義 foo.bar.ADefinition
を検索するとします。
find_definition('foo.bar.ADefinition', SomeMessage)
このメソッドの引数は、完全修飾名の検索に類似したパターンに従います。
abc.xyz.SomeMessage. foo.bar.ADefinition
abc.xyz. foo.bar.ADefinition
abc. foo.bar.ADefinition
foo.bar.ADefinition
Message 定義とモジュールに相対的な名前を解決する場合、検索アルゴリズムはパス内で見つかった Message またはサブモジュールを検索し、Message 以外の値を無視します。
'.'
で始まる名前は完全修飾名とみなされます。検索アルゴリズムは一番上のパッケージから検索を開始します。たとえば、次の 2 つのメッセージ タイプがあるとします。
abc.xyz.SomeMessage
xyz.SomeMessage
.xyz.SomeMessage
を abc
に対して相対的に検索すると、xyz.SomeMessage
に解決され、abc.xyz.SomeMessage
にはなりません。このような種類の名前の場合、relative_to パラメータは実質的に無視され、常に None に設定されます。
パッケージ名の解決の詳細については、プロトコル バッファ パッケージ指定子をご覧ください。
引数
- name
- 検索する定義の名前。完全修飾名または相対名を指定できます。
- relative_to
- メッセージ定義またはモジュールに対して相対的に定義を検索します。None にすると、完全修飾名の検索になります。
名前に関連付けられた Enum または Message クラス定義を返します。
どの検索パスにも定義が見つからない場合は、DefinitionNotFoundError を送出します。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-06-16 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-06-16 UTC。"],[[["The `find_definition` function in `protorpc.messages` locates definitions by name, either relative to a message or module or by a fully qualified name."],["The search algorithm for `find_definition` prioritizes searching relative to the `relative_to` parameter, progressing up the module hierarchy if necessary and then falling back to searching by fully qualified name."],["A name starting with `'.'` in `find_definition` is treated as fully qualified, starting the search from the topmost package and ignoring the `relative_to` parameter."],["The `find_definition` method requires two arguments: `name`, which can be fully qualified or relative, and `relative_to`, that specifies a definition to start the search from."],["`find_definition` will return an `Enum` or `Message` class definition, and in case a definition cannot be found, it will raise a `DefinitionNotFoundError` exception."]]],[]]