"""
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'

super()派生使用中的常见两个错误的更多相关文章

  1. Python编码(encode)和解码(Decode)常见的两个错误

    项目地址:https://git.io/pytips 0x07 和 0x08 分别介绍了 Python 中的字符串类型(str)和字节类型(byte),以及 Python 编码中最常见也是最顽固的两个 ...

  2. Laravel用post提交表单常见的两个错误

    最近在自学Laravel,测试用post方法提交表单时碰到两个错误: 1.获取传入的值时,报错如下图所示: 在stackFlow找答案时各种解释都有,但认真读一下报错信息,意思大概是:获取Http传入 ...

  3. 10 种最常见的 Javascript 错误(频率最高)

    本文是小编给大家收藏的JavaScript 中频度最高的 10 种错误,我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生.写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学 ...

  4. 最常见的HTTP错误

    1. HTTP 500错误(内部服务器错误)对对HTTP 500错误的定义已经充分证明了这是一个最常见的HTTP错误. 一般来说,HTTP 500 错误就是web服务器发生内部错误时返回的信息. 例如 ...

  5. 大数据揭示的10个常见JAVA编程错误

    初学者最常犯的编程错误是什么呢?有可能他们总是混淆等值(==)与赋值(=),或者 & 和 &&:也有可能是他们在循环中使用错误的分隔符(for (int i = 0, i &l ...

  6. python常见的编程错误

    常见的编程错误 2.1 试图访问一个未赋值的变量,会产生运行时错误. 2.2 ==,!=, >=和<=这几个运算符的两个符号之间出现空格,会造成语法错误. 2.3 !=,<>, ...

  7. 常见的SQL错误和解决方法

    前言 今天你会看到每个人——从新手到专家——在使用SQL时犯的各种常见错误.你不能永远避免犯任何错误,但是熟悉广泛的错误将帮助你在尽可能短的时间内解决这些错误. 注:在我们的例子中我们使用的是Orac ...

  8. 【C++】常见易犯错误之数值类型取值溢出与截断(3)

    0.  前言 本节是“[C++]常见易犯错误之数值类型取值溢出与截断(1)” 的补充,主要探讨浮点型的取值溢出. 1. 相关知识 (1) 浮点型数据取值范围如下: 单精度型 float 3.4 * 1 ...

  9. 打码(C语言)常见粗心小错误 (前方高能,一定要点)

    打码(C语言)常见粗心小错误 标签(空格分隔): 博客 自我介绍 本人学院 (http://sdcs.sysu.edu.cn/) 欢迎访问 本人学号 16340213 目录 打码C语言常见粗心小错误 ...

随机推荐

  1. python2的编码问题小结

    对于python2,经常会遇到编码问题,在此小记一下. Python2默认的编码解码方式是ascii码,这点要牢记. windows系统默认是gbk编码的,可以使用chcp查看:936,那就是GBK简 ...

  2. Windows 10上源码编译Poco并编写httpserver和tcpserver | compile and install poco cpp library on windows

    本文首发于个人博客https://kezunlin.me/post/9587bb47/,欢迎阅读! compile and install poco cpp library on windows Se ...

  3. 理解Redis单线程运行模式

    本文首发于:https://mp.weixin.qq.com/s/je4nqCIq6ARhSV2V5Ymmtg 微信公众号:后端技术指南针 0.概述 通过本文将了解到以下内容: Redis服务器采用单 ...

  4. 作业要求20191010-8 alpha week 1/2 Scrum立会报告+燃尽图 06

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8751 一.小组情况 队名:扛把子 组长:迟俊文 组员:宋晓丽 梁梦瑶 韩 ...

  5. 面向对象之classmethod和staticmethod(python内置装饰器)

    对象的绑定方法复习classmethodstaticmethod TOC 对象的绑定方法复习 由对象来调用 会将对象当做第一个参数传入 若对象的绑定方法中还有其他参数,会一并传入 classmetho ...

  6. Fortran文件读写--查找内容

    program ex implicit none character(len=) A(),B(),C() !A异常.B已开挖.C需标记 integer i,j,N1,N2,count !N1是10号文 ...

  7. eclipse导出jar(java打包导出jar)

    有时候需要将j2se工程导出,这样可以在别处运作,就不必拘泥于开发感觉中才能运行了.具体做法如下:方法一:(工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export...-- ...

  8. react新版本配置代理

    新学习react 开始配置react跨域的时候 在网上查看到是在packjson.json里面添加如下代码: "proxy": { "/api": { &quo ...

  9. jsp 实现修改和删除功能

    main.jsp   实现查询 在此界面快捷方式到修改界面 点击修改  会把数据传递到exit.jsp 修改   edit.jsp 前面数据: 数据库: /* Navicat Premium Data ...

  10. Java 中 Snack3的使用

    网上看了一篇Java 中 Gson的使用,所以也跟着写篇Java 中 Snack3的使用 JSON 是一种文本形式的数据交换格式,从Ajax的时候开始流行,它比XML更轻量.比二进制容易阅读和编写:解 ...