找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 540|回复: 2

[求助] python初学者请教大神,挺急的

1

主题

1

帖子

1

积分

贫民

积分
1
Aristomd 发表于 2018-8-9 16:26:20 | 显示全部楼层 |阅读模式
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 = 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 anodometer!")
                '''       
        def increment_odometer(self,miles):
                self.odometer_reading += miles

class Bettery():
        def __init__(self,battery_size =70 ):
                self.battery_size = battery_size
               
        def describe_battery(self):
                print("This car has a " + str(self.battery_size) + "-kwh battery.")

        def get_range(self):
                if self.battery_size == 70:
                        range = 240
                elif self.battery_size == 85:
                        range = 270
                       
                message = "This car  can go approximately" + str(rang)
                message += "miles on a full charge."
                print(message)
               
class ElectricCar(Car):
        def __init__(self,make,model,year):
                super().__init__(make,model,year)
                self.battery =Bettery
       
        def describe_battery(self):
                print("This car has a " + str(self.battery_size) + '-kwh battery.')       
       
        def fill_gas_tank(self):
                print("This car don't need a gas tank!")
       
my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()


问题出现在了最后两行
2016 Tesla Model S
Traceback (most recent call last):
  File "car.py", line 55, in <module>
    my_tesla.battery.describe_battery()
TypeError: describe_battery() missing 1 required positional argument: 'self'

回复

使用道具 举报

3

主题

260

帖子

260

积分

侠客

积分
260

热心会员

uitb 发表于 2018-8-10 17:48:38 | 显示全部楼层
self.battery =Bettery()
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
半夏听海 发表于 2018-8-30 13:46:16 | 显示全部楼层

我编译通过了,主要两处问题,看看是不是想要的答案

本帖最后由 半夏听海 于 2018-8-30 13:47 编辑
  1. class Car():

  2.     def __init__(self, make, model, year):
  3.         self.make = make
  4.         self.model = model
  5.         self.year = year
  6.         self.odometer_reading = 0

  7.     def get_descriptive_name(self):
  8.         long_name = str(self.year) + ' ' + self.make + ' ' + self.model
  9.         return long_name.title()

  10.     def read_odometer(self):
  11.         print("This car has " + str(self.odometer_reading) + " miles on it")

  12.     '''        
  13.     def update_odometer(self,mileage):
  14.             if mileage > self.odometer_reading:
  15.                     self.odometer_reading = mileage
  16.             else:
  17.                     print("You can't roll back anodometer!")
  18.             '''

  19.     def increment_odometer(self, miles):
  20.         self.odometer_reading += miles


  21. class Bettery():
  22.     def __init__(self, battery_size=70):
  23.         self.battery_size = battery_size

  24.     def describe_battery(self):
  25.         print("This car has a " + str(self.battery_size) + "-kwh battery.")

  26.     def get_range(self):
  27.         if self.battery_size == 70:
  28.             range = 240
  29.         elif self.battery_size == 85:
  30.             range = 270

  31.         message = "This car  can go approximately" + str(range) #range 你写错了
  32.         message += "miles on a full charge."
  33.         print(message)


  34. class ElectricCar(Car):
  35.     def __init__(self, make, model, year):
  36.         super().__init__(make, model, year)
  37.         self.battery = Bettery()            #这里需要改成这个

  38.     def describe_battery(self):
  39.         print("This car has a " + str(self.battery_size) + '-kwh battery.')

  40.     def fill_gas_tank(self):
  41.         print("This car don't need a gas tank!")


  42. my_tesla = ElectricCar('tesla', 'model s', 2016)
  43. print(my_tesla.get_descriptive_name())
  44. my_tesla.battery.describe_battery()
  45. my_tesla.battery.get_range()
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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