擅长:python、mysql、java
<p>错误基本上是说解释器在给定的名称空间中找不到任何与<code>Person</code>匹配的内容,在您的例子中是<code>model</code>包。这是因为它在<code>model.myclass</code>包中,但是它被导入到<code>root</code>而不是{<cd5>}。在</p>
<p>python中的模块基本上是带有<code>__init__.py</code>脚本的目录。但是从<strong>init</strong>在根级别导入任何东西都很困难。而且,这是没有必要的。在</p>
<p>好的,所以这意味着解决方案要么直接从<code>model</code>包导入,要么从rott级别<code>__init__.py</code>导入。我推荐前一种方法,因为它更常用。你可以这样做:</p>
<pre><code>from model.myclass import Person
def donext():
person = Person()
person.print_name()
if __name__ == '__main__':
donext()
</code></pre>
<p>并将<code>__init__.py</code>留空。它们只用于初始化,因此不需要将所有内容导入它们。在</p>
<p>您可以将某些内容放入<code>model/__init__.py</code>,然后将其导入<code>myclass.py</code>中,如下所示:</p>
<p><code>__init__.py</code>:</p>
^{pr2}$
<p><code>myclass.py</code>:</p>
<pre><code>from . import something
print something
</code></pre>