python:AttributeError:类没有属性‘***’

抽搐人偶师Orz 2019-03-10 03:26:33
初学python遇到了问题
按书上的代码敲的结果有BUG

显示这个File "D:/PycharmProjects/chapter9/electric_car.py", line 52, in <module>
my_tesla.battery.describe_battery()
AttributeError: 'ElectricCar' object has no attribute 'battery'


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 backk an odometer!")

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


class Battery():
"""一次模拟电动汽车电瓶的简单尝试"""

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.")


class ElectricCar(Car):
"""电动汽车的独特之处"""

def _init_(self, make, model, year):
"""
电动汽车的独特之处
初始化父类的属性,再初始化电动汽车持有的属性
"""
super()._init_(make, model, year)
self.battery = Battery()


my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
...全文
1671 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
__init__方法前后两个下划线,有的长有的短
白马过戏 2020-05-15
  • 打赏
  • 举报
回复
__int__ 双下划线
EAson猪油渣 2019-07-01
  • 打赏
  • 举报
回复
没有对类进行申明,直接用类名去引用
steave_lz 2019-03-11
  • 打赏
  • 举报
回复
你先解决一下大小写问题吧!
抽搐人偶师Orz 2019-03-11
  • 打赏
  • 举报
回复
码一下,初学真的没注意这个问题
陈年椰子 2019-03-10
  • 打赏
  • 举报
回复
看了有啥区别

def __init__
def _init_

两个_ !
抽搐人偶师Orz 2019-03-10
  • 打赏
  • 举报
回复
求个大神给回答一下

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧