鱼C论坛

 找回密码
 立即注册
查看: 2735|回复: 2

[已解决]大哥救命啊,为什么报错啊,头都扣烂了。

[复制链接]
发表于 2022-9-29 01:17:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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):
        '''返回整洁的描述性属性'''
        long_name = f'{self.year} {self.make} {self.model}'
        return long_name.title()

    def update_odometer(self, mileage):
        '''
        将里程数读数设置为指定的值
        禁止将里程表读数回调
        '''
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print('you not can roll back an odometer!')

    def increment_odometer(self, miles):
        '''将里程表读数增加指定的量'''
        self.odometer_reading += miles

    def read_odometer(self):
        '''打印一条指出汽车里程的消息'''
        print(f'This car has {self.odometer_reading} miles on it.')


class Battery:
    '''一次模拟电动汽车电瓶的简单测试'''

    def __init__(self, battery_size=75):
        '''初始化电瓶的属性'''
        self.battery_size = battery_size

    def describe_battery(self):
        '''打印一条描述电瓶容量的消息'''
        print(f'this car has a {self.battery_size}-kwh battery')


class ElectricCar(Car):
    '''电动汽车的独特之处'''

    def __init__(self, make, model, year):
        '''初始化父类的属性'''
        super().__init__(make, model, year)
        self.battery=Battery

    def descride_battery(self):
        '''打印一条描述电瓶容量的消息'''
        print(f'this car has a {self.battery_size}-kwh battery')


my_tesla = ElectricCar('tesla', 'model', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
最佳答案
2022-9-29 07:57:10
问题出现在self.battery=Battery这里,我们需要实例化Battery这个类,也就是在它后面添加一对括号。
改成self.battery = Battery()就可以了。

Battery表示一个类,Battery()表示这个类型下的一个具体的对象(也叫做实例)。打个比方,Human表示人这个类别,Human()表示一个具体的人。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-29 02:04:00 | 显示全部楼层
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):
        '''返回整洁的描述性属性'''
        long_name = f'{self.year} {self.make} {self.model}'
        return long_name.title()

    def update_odometer(self, mileage):
        '''
        将里程数读数设置为指定的值
        禁止将里程表读数回调
        '''
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print('you not can roll back an odometer!')

    def increment_odometer(self, miles):
        '''将里程表读数增加指定的量'''
        self.odometer_reading += miles

    def read_odometer(self):
        '''打印一条指出汽车里程的消息'''
        print(f'This car has {self.odometer_reading} miles on it.')


class Battery:
    '''一次模拟电动汽车电瓶的简单测试'''

    def __init__(self, battery_size=75):
        '''初始化电瓶的属性'''
        self.battery_size = battery_size

    def describe_battery(self):
        '''打印一条描述电瓶容量的消息'''
        print(f'this car has a {self.battery_size}-kwh battery')


class ElectricCar(Car):
    '''电动汽车的独特之处'''

    def __init__(self, make, model, year):
        '''初始化父类的属性'''
        super().__init__(make, model, year)
        self.battery=Battery()

    def descride_battery(self):
        '''打印一条描述电瓶容量的消息'''
        print(f'this car has a {self.battery_size}-kwh battery')


my_tesla = ElectricCar('tesla', 'model', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-29 07:57:10 | 显示全部楼层    本楼为最佳答案   
问题出现在self.battery=Battery这里,我们需要实例化Battery这个类,也就是在它后面添加一对括号。
改成self.battery = Battery()就可以了。

Battery表示一个类,Battery()表示这个类型下的一个具体的对象(也叫做实例)。打个比方,Human表示人这个类别,Human()表示一个具体的人。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 05:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表