今天学习了一下python的基础面向对象知识,在继承中发现了一些有趣的问题和方法,做个笔记mark一下
首先看一段简单的继承代码
class my_class: def __init__(self): print "new object" self.name="myclass" def setName(self,name): self.name=name def printName(self): print self.name class my_new_class(my_class): def setAge(self,age): self.age=age; def printAge(self): print self.age a = my_new_class() a.printName() a.setName("Apple") a.printName(); a.setAge(12) a.printAge()
两个简单的继承类,看一下语句的执行结果
>>> new object myclass Apple 12 >>>
可见,子类先执行父类的构造函数,而且能够访问父类的字段name
然后我们再看一个例子
class my_class: def __init__(self): print "new object" self.name="myclass" def setName(self,name): self.name=name def printName(self): print self.name class my_new_class(my_class): def __init__(self): print "my_new _class" ## self.name="hello" def setAge(self,age): self.age=age; def printAge(self): print self.age a = my_new_class() a.printName() a.setName("Apple") a.printName(); a.setAge(12) a.printAge()
在这段代码中,子类新建了一个自己的类构造器,然后我们执行一下结果
my_new _class Traceback (most recent call last): File "D:/python practice/test1", line 21, in <module> a.printName() File "D:/python practice/test1", line 8, in printName print self.name AttributeError: my_new_class instance has no attribute 'name'
结果打印出了子类的构造函数的信息,但是没有父类的构造函数信息,同时报出“没有name属性”这一个错误,然后我们接着把上面代码中的子类构造函数的注释去掉,执行结果如下;
>>> my_new _class hello Apple 12 >>>
可见,子类的构造函数并没有执行父类的构造函数,也自然不会继承在父类构造函数里面的字段属性,但是子类顺理成章的继承了父类的所有方法,如setName();这和Java以及C++等面向对象部分有着显著地区别。
接下来我们来看一下python的子类调用父类的一些方法(这段来自CSDN博主MyKernel)
class A: def method(self, arg): return class B(A): def method(self, arg): # A.method(self,arg) #1 # super(B, self).method(arg) #2 # super().method(arg) #3
[注意] 如果在子类定义外(即在其他函数逻辑内,子类对象去调用父类成员时),则按照:
... ob = B() super(B,ob).method(arg) #调用class B的父类class A的method。 ...
相关推荐
【Python核心笔记】深入浅出地探讨了Python这一强大且多用途的编程语言。Python以其简单易用且功能强大...通过阅读这份《Python核心笔记》,无论是新手还是有经验的开发者,都能从中受益,进一步提升自己的Python技能。
Python 新手课堂笔记 Python 是一种解释型、面向对象的语言,由吉多·范罗苏姆(Guido van Rossum)于 1989 年发明,1991 年正式公布。Python 单词是“大蟒蛇”的意思,但其实是来自英国电视喜剧片《蒙提·派森的...
Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱,是初学者...无论你是完全的编程新手还是希望转战Python的开发者,都能从中受益。记得动手实践,理论与实践相结合,是学习编程的最佳方式。
作者希望这份笔记能够帮助其他新手学习者,让学习Python变得轻松愉快。 对于初学者来说,理解基本概念和编写简单程序是学习过程的起点。变量是编程中的基本构建块,它们存储数据和可以被赋予新的值。在Python中,...
在编写Python学习笔记的过程中,作者雨痕详细总结了Python编程语言的许多关键知识点,这些内容覆盖了从基本语法到高级特性等多个层面,对于有一定编程基础的读者来说,这份笔记不仅可以帮助他们复习和巩固已学知识,...
**Python3中文笔记** ...无论你是初入编程殿堂的新手,还是希望巩固Python知识的开发者,这54篇笔记都将是你宝贵的参考资料。通过系统学习,你可以熟练掌握Python3,为未来的项目开发或进一步的学习打下坚实基础。
这份“Python学习笔记(中文版)”全面覆盖了Python编程的基础到进阶内容,无论你是Python新手还是希望进一步提升技能的开发者,都能从中受益。通过深入学习和实践,你可以掌握Python编程的精髓,为自己的IT职业生涯...
总的来说,《Python学习笔记》是一份覆盖Python全方面的教程,无论你是Python新手还是希望深化理解的开发者,都能从中受益匪浅。通过深入学习并实践这些知识点,你将能够熟练掌握Python这门强大的编程语言,为你的...
无论你是对编程感兴趣的新手,还是希望在Python领域深造的专业人士,这两份资料都能为你的学习之旅提供有力支持。在阅读过程中,建议读者动手实践,通过编写代码来巩固理论知识,这样才能更好地理解和运用所学。同时...
总之,这份“Python学习笔记”是全面学习Python语言的一份宝贵资料,无论你是初入编程的新手,还是寻求提升的开发者,都能从中受益匪浅。通过阅读“Python学习笔记第二版.pdf”,你将对Python有一个全面而深入的理解...
Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱,尤其对于初学者而言,Python是入门编程的理想选择。...因此,无论你是Python新手还是有一定经验的开发者,这份笔记都值得一读。
"6小时完成Python 教程.txt"可能是整个课程的大纲或者笔记,按照时间顺序列出了6小时内要学习的主要内容。根据标题,我们可以期待从基础开始,例如安装Python环境、理解变量和运算符、输入输出操作,然后逐步深入到...
总之,这份"python基础自学笔记"涵盖了Python编程的各个方面,无论你是零基础的新手还是希望巩固基础知识的开发者,都能从中受益。通过学习这些内容,你将能够编写出功能丰富的Python程序,并逐步探索更高级的Python...
"Python3萌新入门笔记.zip"是一个专门为Python3初学者设计的资源包,包含了54篇详细的学习笔记,旨在帮助新手快速掌握Python3的基础知识。 在这些笔记中,你将首先了解Python3的基本语法,如变量、数据类型(包括...
这份"Python学习笔记"是由一位经验丰富的前辈编写的,旨在帮助新手快速理解和掌握Python编程基础。 笔记首先会介绍Python的基础知识,包括变量、数据类型(如整型、浮点型、字符串和布尔型)、运算符以及流程控制...
6. **面向对象编程**:Python的面向对象特性使得代码更具可读性和可维护性,笔记会讲解类的创建、继承、封装和多态等概念。 7. **错误和调试**:学习编程的过程中,理解和处理错误是必不可少的,笔记会教读者如何...
根据提供的文件信息,我们可以推断出这是一套针对Python初学者的教学资源,主要由高淇老师教授,并且包含了视频教程、讲义以及相关的代码示例。...这套资源非常适合Python新手作为入门教材来使用。
"Python入门学习笔记"是一份旨在帮助新手掌握Python编程基础的资料,它涵盖了Python语言的核心概念、基本语法以及常用库的使用。 在Python的世界里,初学者首先要了解的是其基本语法结构,包括变量的声明与赋值、...