<p>回答你的问题,是的,有办法。您可以使用<a href="https://docs.python.org/2/tutorial/classes.html#class-and-instance-variables" rel="nofollow">class variable</a>来跟踪实例。你知道吗</p>
<pre><code>class vehicles:
working_vehicles = [] # this is a class variable
class car:
def __init__(self):
vehicles.working_vehicles.append(self) # adds itself to working_vehicles
def drive(self):
pass
</code></pre>
<p>然后可以创建实例,并从<code>vehicles.working_vehicles</code>访问它们。你知道吗</p>
<p>演示:</strong></p>
<p>首先创建汽车:</p>
<pre><code>>>> car1 = vehicles.car()
>>> car2 = vehicles.car()
>>> car3 = vehicles.car()
</code></pre>
<p>然后从<code>vehicles.working_vehicles</code>访问它们。你知道吗</p>
<pre><code>>>> print(vehicles.working_vehicles)
[<__main__.vehicles.car object at 0x022DF6F0>, <__main__.vehicles.car object at 0x01E97ED0>, <__main__.vehicles.car object at 0x01EAA6B0>]
</code></pre>
<p>这在视觉上并没有什么帮助,但您可以调用<em>所有</em>汽车上的<code>drive</code>方法,如下所示:</p>
<pre><code>>>> for car in vehicles.working_vehicles:
... car.drive()
</code></pre>
<p>或在一行中:</p>
<pre><code>>>> map(lambda car: car.drive(), vehicles.working_vehicles)
</code></pre>
<p>它不会立即驱动汽车。您需要在<code>map</code>迭代器上调用<code>list</code>。你知道吗</p>