单继承
具体的语法就不说了。我很关心的是它到底继承了什么
单继承条件下很简单。类的静态变量、类的静态方法、实例的方法、实例的成员变量、基类的构造函数、基类的析构函数都可以从父类中继承过来。私有方法和私有变量是不能继承的。具体看测试代码:
class Student:
'''this test class'''
name = 'ss'
age = 13
def __init__(self):
self.name='bb'
self.addr="shanghai"
self.__love="man"
print "init..."
def __del__(self):
print "dead..."
def Run(self):
print 'people Run'
@staticmethod
def RunStatic():
print "In Static method..."
def __Good(self):
print "good"
class MiniStudent(Student):
pass
#类
print MiniStudent.name
print MiniStudent.age
print MiniStudent.RunStatic()
print "----================--------"
#实例
mini = MiniStudent()
print mini.name
print mini.age
print mini.Run()
print mini.addr
多继承
多继承下,情况明显比这复杂而且,而且会产生多个基类覆盖函数的问题。很幸运,C#中已经没有了多继承,你只能从多个接口继承。正因为这样,我感觉这种多继承不应该被滥用,否则代码会很晦涩。下面这个例子你就可以看到。在上面的例子中,我多添加了一个StudentA的类。 具体看测试代码:
class StudentA:
def __init__(self):
print 'init-studenta'
def GoCar(self):
print "Go Car"
class Student:
'''this test class'''
name = 'ss'
age = 13
def __init__(self):
self.name='bb'
self.addr="shanghai"
self.__love="man"
print "init..."
def __del__(self):
print "dead..."
def Run(self):
print 'people Run'
@staticmethod
def RunStatic():
print "In Static method..."
def __Good(self):
print "good"
class MiniStudent(Student,StudentA):
pass
#类
mini = MiniStudent()
print mini.name
print mini.age
print mini.Run()
print mini.addr
现在这个例子是可以通过的,但如果你把
class MiniStudent(Student,StudentA)
修改成
class MiniStudent(StudentA,Student)
这个代码就通不过了。告诉你mini.addr没有定义。
其实是StudentA的构造函数覆写了Student的函数,也就是说只调用了StudentA.__init__()的方法。下面就谈到继承中的覆写问题。
继承中的覆写
从上面的经验可以得到
Python的多继承,但有以下几点需要注意:
1. 继承方法的调用和基类声明顺序有关(最先使用的覆写之后的方法)。
2. 基类__init__()、__del__() ,如果希望都使用,请显示的调用,否则很容易出错。
class StudentA:
def __init__(self):
print 'init-b'
class Student:
def __init__(self):
print 'init-a'
class MiniStudent(Student,StudentA):
def __init__(self):
StudentA.__init__(self)
Student.__init__(self)
#实例
mini = MiniStudent()
分享到:
相关推荐
### Python学习笔记知识点详解 #### 一、Python简介与特性 **标题与描述解析:** "Python学习笔记.pdf" 的标题直接指出了文档的主题——Python的学习资料,而描述的重复表明该文档的主要内容即为Python的学习笔记...
【Python学习笔记--皮大庆.pdf.zip】是一个针对初学者的Python编程教程,源自英文书籍《How to think like a computer scientist》。这本书以易懂的方式介绍了Python语言的基础知识,旨在帮助没有编程背景的人快速...
【Python学习笔记-王纯业】是一份专为Python初学者设计的教程,由王纯业编撰。这个教程深入浅出地介绍了Python编程的基础知识,帮助初学者快速上手。下面将详细阐述该教程中可能包含的重要知识点,以及Python入门者...
《王纯业的Python学习笔记》是一份专为Python初学者和进阶者设计的学习资料,旨在帮助读者全面掌握这门强大的编程语言。Python作为一门高级编程语言,因其简洁、易读的语法特性,被广泛应用于数据分析、机器学习、...
在Python学习笔记中,作者皮大庆介绍了Python的基础知识,包括程序、调试、程序语言与自然语言的关系、第一个程序的编写等。接着,笔记进入了变量、表达式、语句等基础概念的讲解,逐步深入到函数的定义、使用、参数...
"Python学习笔记+源码练习"是一个适合初学者的资源包,旨在帮助你从零基础开始掌握Python编程。这份资料包含了理论知识讲解和实际代码实践,使学习过程更为直观和实用。 在学习Python时,笔记是关键,它们可以帮助...
"Python学习笔记用案例"这个标题表明这是一份包含了实际应用示例的学习资料,旨在帮助初学者通过实例来理解和掌握Python编程。描述中的“欢迎下载”暗示这份资料是公开共享的,鼓励大家学习和交流。 在Python的学习...
《王纯业版Python学习笔记》是一本专为Python初学者设计的教程,作者王纯业以其简洁明了的写作风格,使得这本相对较为薄的书籍成为了初学者掌握Python编程的理想选择。这本书深入浅出地介绍了Python的基础知识,包括...
从给定的文件信息来看,这是一份关于Python编程语言的学习笔记,由王纯业编著,主要覆盖了Python的基础语法、数据类型、控制结构、函数、模块与包、类和对象、异常处理以及正则表达式等内容。下面将根据笔记的目录...
这份学习笔记强调了Python作为教学工具的优点,它能够帮助学生理解计算机编程的基本原理,而不会因为复杂的语法或晦涩难懂的技术细节而感到沮丧。这份笔记的目的是成长为一本详尽的参考书,而不仅仅是简单的笔记。
### Python学习笔记说明的PPT知识点详述 #### 一、Python简介 - **Python的特点**: - **优雅**:简洁清晰的语法结构。 - **明确**:避免使用隐晦的方式解决问题。 - **简单**:尽可能简化语言结构。 - **...
这份学习笔记涵盖了Python的基本概念、数据类型、控制结构、函数、模块与包、面向对象编程等重要内容。下面将对这些知识点进行详细的解读。 ### 1. Python简介 - **Python** 是一种高级编程语言,因其简洁易读的...
### Python学习笔记与简明教程知识点汇总 #### Python 第1课:安装 - **知识点**: - Python 安装包的选择与下载。 - 安装过程中注意事项,如添加环境变量等。 - 验证Python是否安装成功的方法。 #### Python ...
这份“Python学习笔记资料”显然是一份全面的资源,旨在帮助初学者和有经验的开发者深入理解和掌握Python语言。让我们详细探讨一下Python学习中的关键知识点。 1. **基础语法**:Python的基础包括变量、数据类型...
**Python学习笔记** 这篇笔记是针对初学者设计的,涵盖了Python编程语言的基础知识点,旨在帮助0基础的读者快速入门并掌握Python的核心概念。通过这些笔记,你可以系统地学习Python的语法和其他基本问题,逐步建立...
【Python学习笔记】这篇文档是作者根据个人学习经历和体会整理出的一份全面的Python学习指南,涵盖了从环境搭建到高级应用的多个方面。以下是各部分的详细内容: 1. Python环境搭建:这部分介绍了Python的基本信息...
这份“Python语言学习笔记”是一份开源文档,最初发布在GitHub上,作者希望借助...可以看出,作者对Python有着深厚的理解和热爱,这份文档不仅记录了作者的学习经历,也为其他Python学习者提供了一份宝贵的学习资料。
在编写Python学习笔记的过程中,作者雨痕详细总结了Python编程语言的许多关键知识点,这些内容覆盖了从基本语法到高级特性等多个层面,对于有一定编程基础的读者来说,这份笔记不仅可以帮助他们复习和巩固已学知识,...