擅长:python、mysql、java
<p>即使您解决了<code>NameError</code>,也会遇到另一个问题,即您试图创建递归数据结构。<code>class1</code>的每个实例都试图<em>创建一个<code>class2</code>的实例,它同样会无限地尝试<em>创建另一个<code>class1</code>实例等,以此类推(实际上,直到您得到一个<code>RuntimeError: maximum recursion depth exceeded</code>)。在</p>
<p>在不了解您实际要做什么的情况下,有一个简单的解决方案:</p>
<pre><code>class class1(object):
def __init__(self, friend=None):
if friend is None:
friend = class2(self) # create a class2 instance with myself as a friend
self.friendInstance = friend
class class2(object):
def __init__(self, friend=None):
if friend is None:
friend = class1(self) # create a class1 instance with myself as a friend
self.friendInstance = friend
print class1()
# <__main__.class1 object at 0x00B42450>
print class2()
# <__main__.class2 object at 0x00B65530>
</code></pre>