<p>错误的核心问题是,您试图创建一个需要4个位置参数的对象,但您没有提供</p>
<pre><code>objetoObj = objeto()
</code></pre>
<p>根据您的代码以及您似乎想要实现的目标判断,您应该将函数<code>procesarLista</code><strong>移到类的外部</p>
<p>完成此操作后,可以将对象列表传递给函数,无需删除<code>self</code>,函数将按编写的方式运行</p>
<pre><code>import math
class objeto:
def __init__(self,x, y, r, color):
self.x = x
self.y = y
self.r = r
self.color = color
def colicionEntre(self,pelota):
distancia = math.sqrt(pow(self.x-pelota.x,2)+pow(self.y-pelota.y,2))
radios = self.r + pelota.r
cad = "La pelota " + self.color + " y la pelota " + pelota.color
if(distancia<radios):
cad = cad + " si colicionan"
else:
cad = cad + " no colicionan"
return cad
def procesarLista(listaPelotas):
for i in range(len(listaPelotas)):
for x in range(i,len(listaPelotas)):
if(listaPelotas[i]!=listaPelotas[x]):
print(listaPelotas[i].colicionEntre(listaPelotas[x]))
pelota = objeto(3,4,2,"Amarilla")
pelota2 = objeto(5,5,1,"Verde")
pelota3 = objeto(2,2,1,"Roja")
pelota4 = objeto(1,1,1,"Azul")
lista = [pelota,pelota2,pelota3,pelota4]
procesarLista(lista)
</code></pre>
<p>输出</p>
<hr/>
<pre><code>La pelota Amarilla y la pelota Verde si colicionan
La pelota Amarilla y la pelota Roja si colicionan
La pelota Amarilla y la pelota Azul no colicionan
La pelota Verde y la pelota Roja no colicionan
La pelota Verde y la pelota Azul no colicionan
La pelota Roja y la pelota Azul si colicionan
>>>
</code></pre>