2

次のようなコード スニペットに遭遇しました。

  from object_recognition_msgs.msg import *

私の意見では、これはobject_recognition_msgs(ディレクトリ)にmsg.pyがないことがわかりましたが、object_recognition_msgsに「msg」という名前のディレクトリがあり、ディレクトリの構造は次のとおりです

  object_recognition_msgs
  ├── msg
      ├── __init__.py
      ├── _ObjectId.py
      ├── _ObjectInformation.py
      ├── _ObjectRecognitionActionFeedback.py
      ├── _ObjectRecognitionActionGoal.py
      ├── _ObjectRecognitionAction.py
      ├── _ObjectRecognitionActionResult.py
      ├── _ObjectRecognitionFeedback.py
      ├── _ObjectRecognitionGoal.py
      ├── _ObjectRecognitionResult.py
      ├── _RecognizedObjectArray.py
      ├── _RecognizedObject.py
      ├── _TableArray.py
      └── _Table.py

「from object_recognition_msgs.msg import *」を object_recognition_msgs/msg 内のすべての python ファイルをインポートすると解釈しましたが、この解釈は正しいですか?

前もって感謝します。

4

2 に答える 2

4

そのステートメントは__init__.py、含まれているファイルではなく、パッケージ内のモジュールからすべての名前をインポートします。

パッケージ内のすべてのモジュールのすべてをインポートするには、パッケージ内の各モジュールを__init__.pyファイルに明示的にインポートする必要があります。*

于 2012-10-05T14:56:31.673 に答える
1

はディレクトリであるためmsg、インポート ステートメントはファイルを実行し、msg/__init__.pyそのファイルで定義されているすべての非プライベート名をインポートします。それ自体をインポートしない限り、他のファイルはインポートされませんmsg/__init__.py

于 2012-10-05T14:57:48.260 に答える