<p>我发现你的代码有很多问题。你知道吗</p>
<p>首先,我注意到很多对<code>self.X</code>的引用,其中<code>X</code>不是<code>CarInventory</code>的成员。这是对<code>self</code>的误用,它用于将变量限定到解释器应该查找的类(或偶尔的函数)。如果您正在引用<code>self.manufacturer</code>,而<code>CarInventory</code>没有名为<code>manufacturer</code>的成员,那么您将得到一个异常。你知道吗</p>
<p>我还注意到,在<code>add_car</code>函数中,您将整个汽车列表设置为要添加的新车。根据这个方法的定义,我认为这不是你想要的。相反,您应该使用<code>append</code>方法将新车添加到您的汽车列表中。你知道吗</p>
<p><code>compare</code>也有一些问题。首先,您试图在某个名为<code>highest</code>的变量中apss,而不是<code>'highest'</code>的参数的字符串<code>direction</code>,这就是您的<code>NameError</code>的来源。您还遇到了一些比较问题和缺少的<code>else</code>。你知道吗</p>
<p>我已经修好了你的密码</p>
<pre><code>class CarInventory():
def __init__(self, n_cars = 0, cars = []):
self.n_cars = n_cars
self.cars = cars
def add_car(manufacturer,model,year,mpg):
self.cars.append({
'manufacturer': manufacturer,
'model': model,
'year': year,
'mpg': mpg})
self.n_cars = self.n_cars + 1
def compare(self, attribute, direction = 'highest'):
lowest = self.cars[0]
highest = self.cars[0]
for car in self.cars:
if car[attribute] < lowest[attribute]:
lowest = car
elif car[attribute] > highest[attribute]:
highest = car
if direction == 'highest':
return highest
else:
return lowest
</code></pre>
<p>另外,为了便于阅读,应该在类定义和函数之间添加换行符。你知道吗</p>