Skip to content

Commit cb59fea

Browse files
committed
Merge pull request yidao620c#58 from LxMit/patch-1
重新提交,替换yidao620c#57
2 parents bb86646 + f05b345 commit cb59fea

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

source/c10/p05_separate_directories_import_by_namespace.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
----------
5353
在这里工作的机制被称为“包命名空间”的一个特征。从本质上讲,包命名空间是一种特殊的封装设计,为合并不同的目录的代码到一个共同的命名空间。对于大的框架,这可能是有用的,因为它允许一个框架的部分被单独地安装下载。它也使人们能够轻松地为这样的框架编写第三方附加组件和其他扩展。
5454

55-
包命名空间的关键是确保顶级目录没有__init__.py文件来作为共同的命名空间。缺失__init__.py文件在导入包的时候会有有趣的事情发生。特殊的包命名空间模块被创建,只读的目录列表副本被存储在其__path__变量中。
55+
包命名空间的关键是确保顶级目录中没有__init__.py文件来作为共同的命名空间。缺失__init__.py文件使得在导入包的时候会发生有趣的事情:这并没有产生错误,解释器创建了一个由所有包含匹配包名的目录组成的列表。特殊的包命名空间模块被创建,只读的目录列表副本被存储在其__path__变量中。
5656
举个例子:
5757

5858
.. code-block:: python
@@ -83,7 +83,7 @@
8383
>>> import spam.blah
8484
>>>
8585
86-
一个包是否被作为一个包命名空间的主要方法是检查其__fife__属性。如果没有,那包是个命名空间。这也将表现在字符串中的“namespace”这个词
86+
一个包是否被作为一个包命名空间的主要方法是检查其__file__属性。如果没有,那包是个命名空间。这也可以由其字符表现形式中的“namespace”这个词体现出来。
8787

8888

8989
.. code-block:: python

0 commit comments

Comments
 (0)