`

python新手笔记之python继承

 
阅读更多

今天学习了一下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核心笔记.pdf

    【Python核心笔记】深入浅出地探讨了Python这一强大且多用途的编程语言。Python以其简单易用且功能强大...通过阅读这份《Python核心笔记》,无论是新手还是有经验的开发者,都能从中受益,进一步提升自己的Python技能。

    Python新手课堂笔记

    Python 新手课堂笔记 Python 是一种解释型、面向对象的语言,由吉多·范罗苏姆(Guido van Rossum)于 1989 年发明,1991 年正式公布。Python 单词是“大蟒蛇”的意思,但其实是来自英国电视喜剧片《蒙提·派森的...

    python入门笔记(推荐)

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱,是初学者...无论你是完全的编程新手还是希望转战Python的开发者,都能从中受益。记得动手实践,理论与实践相结合,是学习编程的最佳方式。

    python学习笔记(带书签版)

    作者希望这份笔记能够帮助其他新手学习者,让学习Python变得轻松愉快。 对于初学者来说,理解基本概念和编写简单程序是学习过程的起点。变量是编程中的基本构建块,它们存储数据和可以被赋予新的值。在Python中,...

    python 大神学习笔记

    在编写Python学习笔记的过程中,作者雨痕详细总结了Python编程语言的许多关键知识点,这些内容覆盖了从基本语法到高级特性等多个层面,对于有一定编程基础的读者来说,这份笔记不仅可以帮助他们复习和巩固已学知识,...

    Python3中文笔记

    **Python3中文笔记** ...无论你是初入编程殿堂的新手,还是希望巩固Python知识的开发者,这54篇笔记都将是你宝贵的参考资料。通过系统学习,你可以熟练掌握Python3,为未来的项目开发或进一步的学习打下坚实基础。

    Python学习笔记(中文版)..

    这份“Python学习笔记(中文版)”全面覆盖了Python编程的基础到进阶内容,无论你是Python新手还是希望进一步提升技能的开发者,都能从中受益。通过深入学习和实践,你可以掌握Python编程的精髓,为自己的IT职业生涯...

    Python学习笔记.rar

    总的来说,《Python学习笔记》是一份覆盖Python全方面的教程,无论你是Python新手还是希望深化理解的开发者,都能从中受益匪浅。通过深入学习并实践这些知识点,你将能够熟练掌握Python这门强大的编程语言,为你的...

    Python学习笔记

    无论你是对编程感兴趣的新手,还是希望在Python领域深造的专业人士,这两份资料都能为你的学习之旅提供有力支持。在阅读过程中,建议读者动手实践,通过编写代码来巩固理论知识,这样才能更好地理解和运用所学。同时...

    Python 学习笔记

    总之,这份“Python学习笔记”是全面学习Python语言的一份宝贵资料,无论你是初入编程的新手,还是寻求提升的开发者,都能从中受益匪浅。通过阅读“Python学习笔记第二版.pdf”,你将对Python有一个全面而深入的理解...

    程序猿写下的Python笔记,快速读懂Python

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱,尤其对于初学者而言,Python是入门编程的理想选择。...因此,无论你是Python新手还是有一定经验的开发者,这份笔记都值得一读。

    6小时python教程_mosh.zip

    "6小时完成Python 教程.txt"可能是整个课程的大纲或者笔记,按照时间顺序列出了6小时内要学习的主要内容。根据标题,我们可以期待从基础开始,例如安装Python环境、理解变量和运算符、输入输出操作,然后逐步深入到...

    python基础自学笔记

    总之,这份"python基础自学笔记"涵盖了Python编程的各个方面,无论你是零基础的新手还是希望巩固基础知识的开发者,都能从中受益。通过学习这些内容,你将能够编写出功能丰富的Python程序,并逐步探索更高级的Python...

    Python3萌新入门笔记.zip

    "Python3萌新入门笔记.zip"是一个专门为Python3初学者设计的资源包,包含了54篇详细的学习笔记,旨在帮助新手快速掌握Python3的基础知识。 在这些笔记中,你将首先了解Python3的基本语法,如变量、数据类型(包括...

    python学习笔记

    这份"Python学习笔记"是由一位经验丰富的前辈编写的,旨在帮助新手快速理解和掌握Python编程基础。 笔记首先会介绍Python的基础知识,包括变量、数据类型(如整型、浮点型、字符串和布尔型)、运算符以及流程控制...

    python入门笔记

    6. **面向对象编程**:Python的面向对象特性使得代码更具可读性和可维护性,笔记会讲解类的创建、继承、封装和多态等概念。 7. **错误和调试**:学习编程的过程中,理解和处理错误是必不可少的,笔记会教读者如何...

    高淇python第四季视频,讲义,代码

    根据提供的文件信息,我们可以推断出这是一套针对Python初学者的教学资源,主要由高淇老师教授,并且包含了视频教程、讲义以及相关的代码示例。...这套资源非常适合Python新手作为入门教材来使用。

    python入门学习笔记

    "Python入门学习笔记"是一份旨在帮助新手掌握Python编程基础的资料,它涵盖了Python语言的核心概念、基本语法以及常用库的使用。 在Python的世界里,初学者首先要了解的是其基本语法结构,包括变量的声明与赋值、...

Global site tag (gtag.js) - Google Analytics