擅长:python、mysql、java
<p>正如一些评论所指出的,如果以<code>from a import A</code>的形式导入,则循环依赖关系处理得不好。在</p>
<p>简而言之,<code>... import *</code>的问题是,这会导致局部作用域的所有声明都被重写,这实际上导致了一个类(在您的例子中)来自哪个模块的标识。这正是你所面临的。在</p>
<p>以以下方式更改<code>import</code>语句,加上对<code>a.A</code>的分类引用,将生成{<cd5>}作为输出。在</p>
<pre><code>import a
class B:
def __init__(self):
self.m_tName = "B"
def do(self, tA ):
print tA
if not isinstance( tA, a.A ):
print ( "invalid parameter" )
print( "OK" )
</code></pre>
<p>作为附加信息,这已经在<a href="https://stackoverflow.com/questions/2386714/why-is-import-bad">Why is "import *" bad?</a>中讨论过了。我要特别指出这个答案:<a href="https://stackoverflow.com/a/2454460/1540197">https://stackoverflow.com/a/2454460/1540197</a>。在</p>
<p>**编辑:**这是<a href="http://effbot.org/zone/import-confusion.htm" rel="nofollow noreferrer">article</a>解释导入混乱。在</p>