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是一个目录,所以 import 语句将执行该文件msg/__init__.py并导入该文件中定义的所有非私有名称。它不会导入任何其他文件,除非msg/__init__.py自己导入它们。

于 2012-10-05T14:57:48.260 回答