擅长:python、mysql、java
<p>为了简单起见,可以将类本身作为list的子类。在</p>
<pre><code>class Elements(list):
def only_type(self, t):
return Elements(i for i in self if isinstance(i, t))
def get_nearest(self, who):
return min(self, key=lambda x: x.pos.distance_to(who.pos))
el = Elements([Flower(), Person(), Flower(), Something()])
el.only_type(Flower).get_nearest(player)
</code></pre>
<p>与<code>Selector</code>相同</p>