<p>这样做:</p>
<pre><code>class Car:
tank = 0
make = ""
model = ""
</code></pre>
<p><code>tank</code>、<code>make</code>和<code>model</code>是所有实例共享的类变量,因此<code>myCar</code>和<code>yourCar</code>将共享相同的<code>tank</code>。有关<a href="https://docs.python.org/3/tutorial/classes.html#class-and-instance-variables" rel="nofollow noreferrer">Class and Instance Variables</a>的更多详细信息,请阅读Python文档</p>
<p>因为汽车的油箱是每辆汽车(每个实例)的一部分,所以最好使用实例变量。因此最好将这些变量写入<code>__init__</code>:</p>
<pre><code>class Car:
def __init__(self, make, model, fuel):
self.tank = 0
self.make = make
self.model = model
self.fuel = fuel
</code></pre>
<p>现在,<code>tank</code>是一个实例变量。要访问它,请使用<code>myCar.tank</code>(此处<code>myCar</code>是对象<code>Car</code>的实例)。因此,要从油箱中减去燃油,请执行以下操作:</p>
<pre><code>myCar.setFuel(myCar.tank - 7)
</code></pre>
<p>编辑:您的代码在打印时没有减少燃油,因为您的代码存在另一个问题。看看你的<code>setFuel</code>函数,它设置的是<code>tank</code>,而不是<code>fuel</code>。改为:</p>
<pre><code>def setFuel(self, fuel):
self.fuel = int(fuel)
</code></pre>
<p>另外,在<code>myCar</code>中设置燃油时,使用的是<code>myCar.tank - 7</code>,其中<code>tank</code>等于<code>0</code>。因此,您需要做的是:</p>
<pre><code>myCar.setFuel(myCar.fuel - 7)
</code></pre>
<p>我认为更好的办法是在<code>Car</code>对象中创建一个函数来减少燃油,并在这个函数中检查汽车是否有足够的燃油(因为你不能有<code>-x</code>燃油,对吗?),如下所示:</p>
<pre><code>def reduceFuel(self, fuel_used):
if self.fuel - fuel_used < 0:
raise ValueError("Not enough fuel")
else:
self.fuel -= fuel_used
</code></pre>
<p>以及使用:</p>
<pre><code>myCar.reduceFuel(7)
</code></pre>