全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1006 4
2017-12-18
LZ小白,刚开始学Python,求教一下下面的代码哪里错了,最好能告诉我原理,因为我是按书上说的编的。
class Car():
        def __init__(self,make,model,year):
                self.make = make
                self.model = model
                self.year = year
                self.odometer_reading = 233
        def get_descriptive_name(self):
                long_name = str(self.year)+" "+self.make+' '+self.model
                return long_name.title()
        def read_odometer(self):
                print("This car has "+str(self.odometer_reading)+" miles on it.")
        def update_odometer(self,mileage):
                if mileage >=self.odometer_reading:
                        self.odometer_reading = mileage
                else:
                        print("You can't roll back an odometer!")
        def increment_odometer(self,miles):
                self.odometer_reading += miles
"""
my_new_car=Car("audi","a4",2016)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
"""
class ElectricCar(Car):
        def __int__(self,make,model,year):
                super().__int__(make,model,year)
                self.battery_size = 70
        def describe_battery(self):
                print("this car has a "+str(self.battery_size)+"-kwh battery.")

my_tesla = ElectricCar('tesla',"model 's",2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
附件列表
1111.png

原图尺寸 56.15 KB

1111.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-12-21 13:04:50
是不是在self里没有定义battery_size?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-21 16:26:03
class Car():
    def __init__(self,make,model,year,battery_size):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 233
        self.battery_size = battery_size
    def get_descriptive_name(self):
        long_name = str(self.year)+" "+self.make+' '+self.model
        return long_name.title()
    def read_odometer(self):
        print("This car has "+str(self.odometer_reading)+" miles on it.")
    def update_odometer(self,mileage):
        if mileage >=self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")
    def increment_odometer(self,miles):
        self.odometer_reading += miles
"""
my_new_car=Car("audi","a4",2016)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
"""
class ElectricCar(Car):
    def __init__(self,make,model,year):
        Car.__init__(self,make,model,year,70)
        #super().__int__(make,model,year)
    def describe_battery(self):
        print("this car has a "+str(self.battery_size)+"-kwh battery.")

my_tesla = ElectricCar("tesla",r"model 's",2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-21 16:29:28
class ElectricCar(Car):
        def __int__(self,make,model,year):
                super().__int__(make,model,year)
                self.battery_size = 70

这个类定义的时候,应该是def  __init__(self,*args):  而不是int,表示初始加载(自动运行的类方法)。

然后我给你传了一份代码,是要说明,子类一般是要继承超类(或者基类)的属性,你那样写没错,但不够完善
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-26 16:26:50
Kun806 发表于 2017-12-21 16:29
class ElectricCar(Car):
        def __int__(self,make,model,year):
                super().__int__ ...
谢谢了,楼主看好几天都没有人回复,以为帖子沉了,就没来看了。今天才上
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群