鱼C论坛

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

在参照书本做练习的时候出现无法调用的问题

[复制链接]
发表于 2019-2-4 22:09:27 | 显示全部楼层 |阅读模式

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

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

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 = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name.title()

   
    def odometer_reading(self):
        """打印一条指出汽车里程的消息"""
        print("this car has " + str(self.odometer_reading) + "miles on it .")
   
    def update_odometer(self,mileage):
        """将里程表读数设置为指定的值"""
        self.odometer_reading = mileage


my_car = car('奥迪','a4','2016')
print(my_car.get_descriptive_name())
my_car.update_odometer(23)
my_car.odometer_reading()


请大神看看这个是什么问题?报错说无法调用整数 。但是书上的确实是这样
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-2-5 01:15:45 | 显示全部楼层
本帖最后由 stonejianbu 于 2019-2-5 01:17 编辑

当执行my_car.update_odometer(23)时,self.odoemter_reading = mileage-->23-->int,整数不是可调用对象,而你接着调用的my_car.odometer_reading(),此时的odometer_reading并不是你要调用的方法,即方法odometer_reading被回收了,你需要更换方法名或者属性名。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-5 08:30:37 | 显示全部楼层
你的函数名和变量名一样了。

self.odometer_reading = 0;def odometer_reading(self):

就这么简单,改一个就行。

  1. class car():
  2.     """模拟一次汽车的属性"""

  3.     def __init__(self,make,model,year):
  4.         """描述汽车的属性"""

  5.         self.make = make
  6.         self.model = model
  7.         self.year = year
  8.         self.odometer_read = 0


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

  13.    
  14.     def odometer_reading(self):
  15.         """打印一条指出汽车里程的消息"""
  16.         print("this car has " + str(self.odometer_read) + "miles on it .")
  17.    
  18.     def update_odometer(self,mileage):
  19.         """将里程表读数设置为指定的值"""
  20.         self.odometer_read = mileage


  21. my_car = car('奥迪','a4','2016')
  22. print(my_car.get_descriptive_name())
  23. my_car.update_odometer(23)
  24. my_car.odometer_reading()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-13 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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