We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents bb86646 + f05b345 commit cb59feaCopy full SHA for cb59fea
source/c10/p05_separate_directories_import_by_namespace.rst
@@ -52,7 +52,7 @@
52
----------
53
在这里工作的机制被称为“包命名空间”的一个特征。从本质上讲,包命名空间是一种特殊的封装设计,为合并不同的目录的代码到一个共同的命名空间。对于大的框架,这可能是有用的,因为它允许一个框架的部分被单独地安装下载。它也使人们能够轻松地为这样的框架编写第三方附加组件和其他扩展。
54
55
-包命名空间的关键是确保顶级目录没有__init__.py文件来作为共同的命名空间。缺失__init__.py文件在导入包的时候会有有趣的事情发生。特殊的包命名空间模块被创建,只读的目录列表副本被存储在其__path__变量中。
+包命名空间的关键是确保顶级目录中没有__init__.py文件来作为共同的命名空间。缺失__init__.py文件使得在导入包的时候会发生有趣的事情:这并没有产生错误,解释器创建了一个由所有包含匹配包名的目录组成的列表。特殊的包命名空间模块被创建,只读的目录列表副本被存储在其__path__变量中。
56
举个例子:
57
58
.. code-block:: python
@@ -83,7 +83,7 @@
83
>>> import spam.blah
84
>>>
85
86
-一个包是否被作为一个包命名空间的主要方法是检查其__fife__属性。如果没有,那包是个命名空间。这也将表现在字符串中的“namespace”这个词
+一个包是否被作为一个包命名空间的主要方法是检查其__file__属性。如果没有,那包是个命名空间。这也可以由其字符表现形式中的“namespace”这个词体现出来。
87
88
89
0 commit comments