一、继承和派生简介:

  其实是一个一个事物站在不同角度去看,说白了就是基于一个或几个类定义一个新的类。比如定义了动物类接着派生出了人类,你也可以说人类继承了动物类。一个意思。此外python类似于C和C++支持多继承,一个类可以继承多个类,比如爸爸妈妈生了孩子,孩子继承了爸爸妈妈的属性和方法等等。此外由于python3中的所有类都是新式类,python2中也可以通过继承object来定义新式类,所以治理统一按照新式类的语法来介绍,为了兼容python2和python3,个人推荐一律使用新式类。

二、如何定义类的继承与多继承

1、定义类的继承与多继承

1.1继承

 class person(object):
def __init__(self,name,age,gender,pid):
self.name = name
self.age = age
self.gender = gender
self.pid = pid
print("Create Person")
def showname(self):
print("Name:%s"%self.name) class student(person):
def __init__(self,name,age,gender,pid,sid,level,school):
super(student,self).__init__(name,age,gender,pid)
self.sid = sid
self.level = level
self.school = school
print("Create Student") def showsid(self):
print("StudentID:%s"%self.sid)

1.2多继承

 class father(object):
def __init__(self,name,money):
self._fname = name
self.fmoney = money class mother(object):
def __init__(self,name,money):
self._mname = name
self.mmoney = money class baby(father,mother):
def __init__(self,n0,n1,n2,m1,m2,):
self.name = n0
father.__init__(self,n1,m1)
mother.__init__(self,n2,m2)
self.money = self.fmoney + self.mmoney

三、变量和属性的继承约束:

1、实例的属性与方法的继承要求:

#实例属性与方法的继承:
"""
1、普通实例变量可以继承,保护实例(单下划线)变量可以继承,隐藏实例(双下划线)变量不可继承。
2、普通实例方法可以继承,保护实例(单下划线)方法可以继承,隐藏实例(双下划线)方法不可继承。
"""

2、类的属性与方法的继承要求:

注:类变量是所有该类的实例和类本身的一个全局变量,类变量修改了,属性调用这个变量也随之修改了。而实例变量却是相互独立。类属性和方法,实例都可以调用。

#类属性与方法的继承:
"""
1、普通类变量可以继承,保护类(单下划线)变量可以继承,隐藏类(双下划线)变量不可继承。
2、普通类方法可以继承,保护类(单下划线)方法可以继承,隐藏类(双下划线)方法不可继承。
"""

3、静态方法的继承:

静态方法的继承约束与前两个完全相同,类和实例都可以调用。

4、对于父类的实例、类、静态方法或属性的调用:

继承之后可以直接调用,只要满足进程约束条件即可。

四、重载父类方法:

1、子类重载父类(类、实例、静态)方法后,子类和子类对象会按照新定义的(类、实例、静态)方法去执行。父类及其实例不变,保持原方法执行。

 class person(object):
check = 0
def __init__(self,name,age,gender,pid):
self.name = name
self.age = age
self.gender = gender
self.pid = pid
print("Create Person")
@classmethod
def __showcheck(cls):
print(cls.check)
def showid(self):
print("PersonID:%s"%self.pid)
@staticmethod
def abcd():
print "abcd" class student(person):
def __init__(self,name,age,gender,pid,sid,level,school):
super(student,self).__init__(name,age,gender,pid)
self.sid = sid
self.level = level
self.school = school
print("Create Student") def showid(self):
print "********************************"
print("PersonID:%s"%self.pid)
print("StudentID:%s"%self.sid)
print "********************************"

python的类继承与派生的更多相关文章

  1. Python之面向对象继承和派生

    Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...

  2. Python面向对象编程——继承与派生

    Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...

  3. python 全栈开发,Day20(object类,继承与派生,super方法,钻石继承)

    先来讲一个例子 老师有生日,怎么组合呢? class Birthday: # 生日 def __init__(self,year,month,day): self.year = year self.m ...

  4. python 面向对象之继承与派生

    一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...

  5. Python基础之继承与派生

    一.什么是继承: 继承是一种创建新的类的方式,新建的类可以继承一个或过个父类,原始类成为基类或超类,新建的类则称为派生类 或子类. 其中,继承又分为:单继承和多继承. class parent_cla ...

  6. python面向对象之继承与派生

    一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承,如果是多继承的 ...

  7. C++中的类继承(2)派生类的默认成员函数

    在继承关系里面, 在派生类中如果没有显示定义这六个成员 函数, 编译系统则会默认合成这六个默认的成员函数. 构造函数. 调用关系先看一段代码: class Base { public : Base() ...

  8. python(类继承)

    一.继承 1.单继承 一个对象使用另一个对象的属性和方法,被继承的类也称父类 (1)父类与子类的方法不一样 class Four(): def sub(self,x,y): return x + y ...

  9. 4月12日 python学习总结 继承和派生

    一.继承 什么是继承:   继承是一种新建类的方式,在python中支持一个子类继承多个父类   新建类称为子类或派生类   父类可以称之为基类或者超类   子类会遗传父类的属性 2.  为什么继承 ...

随机推荐

  1. shell中执行hive命令错误:delimited by end-of-file (wanted `EOF')

    错误信息: warning: here-document at line 58 delimited by end-of-file (wanted `EOF') 业务场景,使用hive对数据进行批量清洗 ...

  2. Kettle变量和自己定义java代码的实例应用

    1  kettle.properties參数配置数据源连接和FTP连接 因为測试环境和生产环境中数据库连接FTP等配置会在部署过程中变更,所以预先定义成配置项,在配置文件里改动.这样測试和公布将会变得 ...

  3. MongoDB 简介及安装

    什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供 ...

  4. JavaScript裸体识别技术

    当第一次听说nude.js的时候,我非常怀疑这种浏览器端的裸体识别技术,有几个理由: 正常情况下,裸体识别应该在服务器端进行,这样,那些色情图片或色情视频才能在发送给浏览者前被发现. 我不相信完全依赖 ...

  5. MongoDB 常用shell命令汇总

    //指定用户名和密码连接到指定的MongoDB数据库 mongo 192.168.1.200:27017/admin -u user -p password use youDbName 1.Mongo ...

  6. 将ORACLE数据库更改为归档模式;写出步骤

    解答:具体步骤如下: 1),以exp方式在线备份数据库到指定位置: 2),观察当前数据库是以服务器参数文件(spfile)方式启动还是以参数文件(pfile)方式启动: SQL> show pa ...

  7. goto 语句

    goto 语句 自从提倡结构化设计以来,goto 就成了有争议的语句. 首先,由于 goto 语句可以 灵活跳转,如果不加限制,它的确会破坏结构化设计风格.其次,goto 语句经常带来错 误或隐患. ...

  8. (转) 从ffmpeg中提取出YUV数据

    有时需要从ffmpeg中提取出YUV数据用作预览,另存什么的. ffmpeg是先解码成YUV, 再以这个YUV作为输入进行编码,所以YUV数据有两种:  解码后的YUV数据, 以及  编码重建的YUV ...

  9. Json.net 时间格式处理

    json.net转json时生成的时间格式是这种 2015-11-14T06:59:59+08:00 格式化为这种2015-11-14 后台代码: IsoDateTimeConverter timeF ...

  10. 根据PV量来确定需要进行压测的并发量

    在实际做压力测试的过程中,我们有时不知道用怎样的并发量比较好,下面是几个用PV量去确定并发量的公式,这个在我们公司是比较适用的,大家可以根据自己的业务进行运算. 方法一:这个方法是我在网上查到的80- ...