"""
super()派生可以继承父类的属性
--super()派生继承父类的语法是:super().__init__() --super().__init__()中的__init__()这个括号是不用传值self的 --super()的派生方法在Python2中是:super(自己的类名,self).__init__() --super()的属性查找顺序,严格按照属性的查找顺序来做
先对象自己,然后再类,类中没有再到父类中找,父类中没有的话,才会报错。 """
#第一种错误
class OldPerson:
school='oldboy'
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex class OldStudent(): #此处缺少要继承的父类,导致解释器运行到super()报错,添加OldPerson父类即可解决该问题。 def __init__(self,name,age,sex,stu_id):
super().__init__(name,age,sex)
self.stu_id=stu_id def choose_course(self):
print('%s is choosing course'%self.name)
return 'woaini ' stu1=OldStudent('luzhaoshan',25,'nan',2019)
print(stu1.__dict__)
print(stu1.choose_course()) 报错信息如下:
Traceback (most recent call last):
File "E:/Python jieshiqi/9月份练习/9月6日/super()派生使用自己默写.py", line 32, in <module>
stu1=OldStudent('luzhaoshan',25,'nan',2019)
File "E:/Python jieshiqi/9月份练习/9月6日/super()派生使用自己默写.py", line 25, in __init__
super().__init__(name,age,sex)
TypeError: object.__init__() takes no arguments #第二种错误 """
super()派生可以继承父类的属性
--super()派生继承父类的语法是:super().__init__() --super().__init__()中的__init__()这个括号是不用传值self的 --super()的派生方法在Python2中是:super(自己的类名,self).__init__() --super()的属性查找顺序,严格按照属性的查找顺序来做
先对象自己,然后再类,类中没有再到父类中找,父类中没有的话,才会报错。 """
class OldPerson:
school='oldboy'
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex class OldStudent(): def __init__(self,name,age,sex,stu_id):
#super().__init__(name,age,sex) #调试中把这行代码注释掉,终止继承父类,下面遇到choose_course函数时也会报错,因为print中的定义name属性,只定义了stu_id属性
self.stu_id=stu_id def choose_course(self):
print('%s is choosing course'%self.name) #把name 调整为stu_id 属性即可解决该问题。
return 'woaini ' stu1=OldStudent('luzhaoshan',25,'nan',2019)
print(stu1.__dict__)
print(stu1.choose_course()) 报错信息如下:
Traceback (most recent call last):
{'stu_id': 2019}
File "E:/Python jieshiqi/9月份练习/9月6日/super()派生使用自己默写.py", line 34, in <module>
print(stu1.choose_course())
File "E:/Python jieshiqi/9月份练习/9月6日/super()派生使用自己默写.py", line 29, in choose_course
print('%s is choosing course'%self.name)
AttributeError: 'OldStudent' object has no attribute 'name'

最新文章

  1. 界面设计技法之css布局
  2. c++实现矩阵类矩阵行列式,伴随矩阵,逆矩阵
  3. [HDU5904]LCIS(DP)
  4. sql datetime操作
  5. Flash 无法输入中文的修正方法
  6. SQLite 入门教程(一)基本控制台(终端)命令 (转)
  7. 让Sql语句区分大小写
  8. Android ScrollView 不能滚动但是有滚动条
  9. POJ 2484 A Funny Game
  10. 【记录】ACM计划
  11. python urllib2与urllib
  12. dos2unix批量转换的一种方法
  13. 使用scrapy爬虫,爬取17k小说网的案例-方法二
  14. 配置Tomcat时遇到的问题
  15. 推荐数据库、Web、Net、架构的PDF数据,书不在多,在看!
  16. &amp;lt;climits&amp;gt;头文件定义的符号常量
  17. linux shell下16进制 “\uxxxx” unicode to UTF-8中文
  18. vba遗传算法之非一致性突变
  19. Hibernate中对象的三种状态及相互转化
  20. 模拟估算器:scikit-learn Estimator

热门文章

  1. aws msk
  2. Linux\Nginx 虚拟域名配置及测试验证
  3. Beta阶段贡献分配
  4. 继上篇-jquery ajax提交 本篇用ajax提交的数据去数据库查询
  5. Oracle的高水位线
  6. JavaScript笔记二
  7. 原生JS通过类名(className)获取dom元素
  8. python的Requests库的使用
  9. wincap linux部署
  10. 【数据结构】之队列(Java语言描述)