求助,不太理解为什么跳过if语句了
研究半天不太明白,求大哥们解惑类里面添加属性默认值self.odometer_reading = 0
然后添加了undate_odometer方法,设定了一个条件
当update_odometer的参数mileage大于默认值时,则self.odometer_reading = mileage
当update_odometer的参数mileage小于默认值时,则打印print语句提示
但是实例中用update_odometer给参数为负数,运行后也会输出负数的值。
怎样才可能让条件能够正常判断?
class Car():
"""一次模拟汽车的简单尝试"""
def __init__(self,make,model,year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
print(f'品牌:{self.make.title()}\n型号:{self.model.title()}\n上市时间:{self.year}')
def update_odometer(self,mileage):
""""
将里程表读数设置为指定的值
禁止将里程表读数回调
"""
self.odometer_reading = mileage
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print('禁止回调里程数!!')
def read_odometer(self):
print(f"里程数:{self.odometer_reading} Km")
my_new_car = Car('audi','a4','2016')
my_new_car.get_descriptive_name()
my_new_car.update_odometer(-10)
my_new_car.read_odometer() 本帖最后由 isdkz 于 2022-4-2 09:05 编辑
class Car():
"""一次模拟汽车的简单尝试"""
def __init__(self,make,model,year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
print(f'品牌:{self.make.title()}\n型号:{self.model.title()}\n上市时间:{self.year}')
def update_odometer(self,mileage):
""""
将里程表读数设置为指定的值
禁止将里程表读数回调
"""
# self.odometer_reading = mileage 这一句在 if 外面,无论如何也会执行,所以不要这句就可以了
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print('禁止回调里程数!!')
def read_odometer(self):
print(f"里程数:{self.odometer_reading} Km")
my_new_car = Car('audi','a4','2016')
my_new_car.get_descriptive_name()
my_new_car.update_odometer(-10)
my_new_car.read_odometer() isdkz 发表于 2022-4-2 09:03
{:10_266:}{:10_266:}谢谢,还是不细心犯的错
页:
[1]