记录Python类与继承的一个错误

本文详细记录了在学习Python类与继承过程中遇到的一个常见错误——忘记添加括号导致的TypeError。通过具体代码示例,作者分享了如何正确使用super()方法调用父类构造函数,避免类型错误。

今天在学python的类与继承的时候遇到一个错误,原来是自己在ctrl+c  ctrl+v的时候漏了一个括号

 1 class Car():
 2     def __init__(self,make,year,model):
 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 an odometer")
18     def increment_odometer(self,miles):
19         self.odometer_reading+=miles
20 class ElectricCar(Car):
21     def __init__(self,make,model,year):
22         super.__init__(make,year,model)
23 my_tesla=ElectricCar('tesla','model s',2016)
24 print(my_tesla.get_descriptive_name())

运行时出现了以下的错误

super.__init__(make,year,model)

TypeError: descriptor '__init__' requires a 'super' object but received a 'str'

原来是22行的super()那里少了一个括号。

 

转载于:https://www.cnblogs.com/Guhongying/p/10011389.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值