擅长:python、mysql、java
<p>这个问题没有得到完全的回答,因为模块隐私并不是纯传统的,而且由于使用<strong>import</strong>可能会或可能不会识别模块隐私,这取决于它是如何使用的。</p>
<p>如果在模块中定义私有名称,则这些名称<strong>将被导入到使用语法“import module_name”的任何脚本中。因此,假设您在示例中正确地定义了模块private,_num,in a.py,like so。。</p>
<pre><code>#a.py
_num=1
</code></pre>
<p>…您可以在b.py中使用模块名符号访问它:</p>
<pre><code>#b.py
import a
...
foo = a._num # 1
</code></pre>
<p>要仅从a.py导入非私有项,必须使用<strong>from</strong>语法:</p>
<pre><code>#b.py
from a import *
...
foo = _num # throws NameError: name '_num' is not defined
</code></pre>
<p>但是,为了清楚起见,在从模块导入名称时最好是显式的,而不是全部用“*”导入它们:</p>
<pre><code>#b.py
from a import name1
from a import name2
...
</code></pre>