鱼C论坛

 找回密码
 立即注册
查看: 2344|回复: 3

帮忙修改代码—类

[复制链接]
发表于 2020-1-26 22:57:57 | 显示全部楼层 |阅读模式

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

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

x
照着书打的,因为刚学,看不出来,一直用的是英文输入法。不明白报错指的是什么,以及如何修改
0.原代码
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.name + ' ' + self.model
        return long_name.title()

    def read_odometer(self):
        """打印一条指出汽车里程的消息"""
        print("This car has " + str(self.odemeter_reading) + "miles on it.")

my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
1.错误显示
Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/代码练习/dog.py", line 20, in <module>
    print(my_new_car.get_descriptive_name())
  File "C:/Users/Administrator/Desktop/代码练习/dog.py", line 12, in get_descriptive_name
    long_name = str(self.year) + ' ' + self.name + ' ' + self.model
AttributeError: 'Car' object has no attribute 'name'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-26 23:07:02 | 显示全部楼层

  1. class Car():

  2.     def __init__(self,make,model,year):
  3.         """初始化描述汽车的属性"""
  4.         self.make = make
  5.         self.model = model
  6.         self.year = year
  7.         self.odometer_reading = 0

  8.     def get_descriptive_name(self):
  9.         """返回整洁的描述性信息"""
  10.         long_name = str(self.year) +' ' + self.model # 为何还多了 self.name 属性?
  11.         return long_name # long_name在你的代码中什么时候成了方法了?

  12.     def read_odometer(self):
  13.         """打印一条指出汽车里程的消息"""
  14.         print("This car has " + str(self.odemeter_reading) + "miles on it.")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-27 09:38:28 | 显示全部楼层
本帖最后由 一个账号 于 2020-1-27 16:35 编辑

Car对象没有name属性,你改成这样:
  1. class Car():

  2.     def __init__(self,make,model,year, name):                # 修改的地方
  3.         """初始化描述汽车的属性"""
  4.         self.make = make
  5.         self.model = model
  6.         self.year = year
  7.         self.odometer_reading = 0
  8.         self.name = name                # 修改的地方

  9.     def get_descriptive_name(self):
  10.         """返回整洁的描述性信息"""
  11.         long_name = str(self.year) + ' ' + self.name + ' ' + self.model
  12.         return long_name.title()

  13.     def read_odometer(self):
  14.         """打印一条指出汽车里程的消息"""
  15.         print("This car has " + str(self.odemeter_reading) + "miles on it.")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-27 10:54:42 | 显示全部楼层
本帖最后由 zltzlt 于 2020-1-27 15:53 编辑
  1. class Car():

  2.     def __init__(self, make, model, year):
  3.         """初始化描述汽车的属性"""
  4.         self.make = make
  5.         self.model = model
  6.         self.year = year
  7.         self.odometer_reading = 0

  8.     def get_descriptive_name(self):
  9.         """返回整洁的描述性信息"""
  10.         long_name = str(self.year) + ' ' + self.model    # 自身没有 name 属性,因此要将 self.name 去掉
  11.         return long_name.title()

  12.     def read_odometer(self):
  13.         """打印一条指出汽车里程的消息"""
  14.         print("This car has " + str(self.odometer_reading) + "miles on it.")


  15. my_new_car = Car('audi', 'a4', 2016)
  16. print(my_new_car.get_descriptive_name())
  17. my_new_car.read_odometer()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-21 23:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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