「已注销」 2021-08-19 14:56 采纳率: 100%
浏览 57
已结题

《Python编程从入门到实践》中出现的问题

这本书在讲解类时举了个例子

  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 = f"{self.year} {self.make} {self.model}"
  9. return long_name.title()
  10. def read_odometer(self):
  11. print(f"This car has {self.read_odometer()} miles on it. ")
  12. my_new_car = Car('audi', 'a4', 2019)
  13. print(my_new_car.get_descriptive_name())
  14. my_new_car.read_odometer()

但是我在我自己电脑上运行此代码,编译器报错了:

  1. Traceback (most recent call last):
  2. File "D:\PycharmProjects\python_work\car.py", line 22, in <module>
  3. my_new_car.read_odometer()
  4. File "D:\PycharmProjects\python_work\car.py", line 18, in read_odometer
  5. print(f"This car has {self.read_odometer()} miles on it. ")
  6. File "D:\PycharmProjects\python_work\car.py", line 18, in read_odometer
  7. print(f"This car has {self.read_odometer()} miles on it. ")
  8. File "D:\PycharmProjects\python_work\car.py", line 18, in read_odometer
  9. print(f"This car has {self.read_odometer()} miles on it. ")
  10. [Previous line repeated 996 more times]
  11. RecursionError: maximum recursion depth exceeded

我刚刚学Python,不是很懂为什么。

展开全部

  • 写回答

1条回答 默认 最新

  • Pliosauroidea 2021-08-19 14:59
    关注
    1. def read_odometer(self):
    2. print(f"This car has {self.read_odometer()} miles on it. ")

    你在print里面引用了函数本身,这个函数本身又会引用自身,于是造成死循环
    你可以直接把保存信息扔进百度搜索,通过百度翻译也能了解其含义
    img
    递归错误:你在函数内引用了自身,这一过程出错了
    超过最大递归深度:一般是陷入了死循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    Pliosauroidea 2021-08-19 15:00

    有帮助请采纳

    1
    回复
    「已注销」 回复 Pliosauroidea 2021-08-19 15:03

    哦,我把括号删掉后,程序还是不太对。

    1. 2019 Audi A4
    2. This car has <bound method Car.read_odometer of <__main__.Car object at 0x0000022B24C40FA0>> miles on it.

    回复
    「已注销」 回复 Pliosauroidea 2021-08-19 15:04

    抱歉,我看花了哈哈哈

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 已采纳回答 8月19日
  • 创建了问题 8月19日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部