2019独角兽企业重金招聘Python工程师标准>>>

class schoolmember(object):

def __init__(self,name,age):

self.name = name

self.age = age

print("Itializing school member:%s" %self.name)

def tell(self):

print("name:%s,age:%s" %(self.name,self.age))

class teacher(schoolmember):

def __init__(self,name,age,salary):

#这里的参数必须和基类的参数名完全相同,除了自身的salary

schoolmember.__init__(self,name,age)#这里的参数也必须和基类参数名相同

#这句说明该子类继承基类的name和age属性

self.salary = salary#这句说明和添加子类自身特有的属性salary

print("Initializing teacher is :%s" % self.name)

def tell(self):

schoolmember.tell(self)#调用基类的函数

print("salary:%d" % self.salary)

class student(schoolmember):

def __init__(self,name,age,marks):

schoolmember.__init__(self,name,age)

self.marks = marks

print("Initializing student : %s" % self.name)

def tell(self):

schoolmember.tell(self)

print("marks :%d" % self.marks)

t = teacher("mrs.kite",40,30000)#先调用基类的初始化函数然后调用子类本身的初始化函数

s = student("Tom",14,89)#形成实例对象

members = [t,s]

for member in members:

member.tell()

为了使用继承,我们把基本类的名称作为一个元组跟在定义类时的类名称之后。然后,我们注意到基本类的__init__方法专门使用self变量调用,这样我们就可以初始化对象的基本类部分。这一点十分重要——Python不会自动调用基本类的constructor,你得亲自专门调用它。

我们还观察到我们在方法调用之前加上类名称前缀,然后把self变量及其他参数传递给它。

注意,在我们使用SchoolMember类的tell方法的时候,我们把TeacherStudent的实例仅仅作为SchoolMember的实例。

另外,在这个例子中,我们调用了子类型的tell方法,而不是SchoolMember类的tell方法。可以这样来理解,Python总是首先查找对应类型的方法,即现在子类中寻找相应的方法,如果找不到,再到基类中去找。也就是说,如果它不能在导出类中找到对应的方法,它才开始到基本类中逐个查找。基本类是在类定义的时候,在元组之中指明的。

一个术语的注释——如果在继承元组中列了一个以上的类,比如 class subclass(superclass1,superclass2,superclass3)那么它就被称作 多重继承 。

转载于:https://my.oschina.net/piginwind/blog/692651

python类的继承--------类的基础(四)相关推荐

  1. python定义方法继承类_Python类的定义、继承及类对象使用方法简明教程

    Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类,然后用人类这个类定义出每个具体的人--你.我.他等作为其对象.类还拥有属性和功能,属性即类本身的 ...

  2. 10. python入门速通教程之类、继承类、类中的特殊方法

    python 学习过程中,对新手来说,最难的就是面向对象部分了,但又不得不把它掌握. 在 python 中所有的内容都是对象 python 中的类 学习面向对象,第一个知识点就是类,它可以看成是对象的 ...

  3. python储存数据的容器_Python基础四容器类数据

    一.上周内容回顾 int bool str 之间的互相转换 int  str: str(int) int(str)  #字符串必须是数字组成 int bool: bool(int): 非零即True ...

  4. 定义派生类和继承类(从汇编分析)

    下面我来分析几段继承的类跟大家总结一下前面所说的一些理论知识,这里解释了前面 提供默认构造函数的第二点哦,仔细看 仔细观察地址401090,这里先调用了子类的构造函数,但是原来子类里面并没有构造函数, ...

  5. php 继承内核中的基类,php – 从基类调用继承类的父方法

    以下示例不起作用,因为在类A中调用parent时,php会查找类A的父类,但它不存在.我宁愿这一行在B类中调用Test(). 这可能吗? (我知道这似乎是一个愚蠢的例子,但它有一个实际应用) abst ...

  6. 用classwizard生成某个基类的继承类

    1. 打开classwizard 2. 点击Add Class,选择基类

  7. Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性

    一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...

  8. python获取url参数 类继承_python之类的继承

    在继承当中我们将父类称为:父类,基类,超类 将子类称为:子类,派生类,继承类 子类和父类是is的关系. 假如:p1是父类的一个实例,我们可以说p1是父类,但是不能说是子类. p2是子类的一个实例,我们 ...

  9. java第四节 类的继承/抽象/接口/多态性

    /* 类的继承 类的继承可以简化类的定义 java只支持单继承,不允许多重继承 可以有多层继承,即一个类可以继承其一个类的子类,如类B继承了类A,类C又可以继承类B 那么类C也间接继承了类A子类继承父 ...

最新文章

  1. Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )
  2. 《HTML5 界面设计与开发》 读书笔记
  3. jinja2的url_for 和数据块
  4. 分布式项目启动时报错:Duplicate spring bean id XXX
  5. java geom_java.awt.geom 类 Area - Java 中文参考手册
  6. Google Analytics(分析)
  7. 【计算机原理篇】原码、反码和补码
  8. 0020-使用JDBC向Kudu表插入中文字符-双引号的秘密
  9. 总结替换jar包中指定文件的步骤
  10. 做折线图_Excel折线图这样做,老板看了要崩溃
  11. layui遇见的问题
  12. 09_$.ajax()参数详解及标准写法
  13. TED 你有拖延症吗?
  14. CIS-Linux Centos7最新基线标准进行系统层面基线检测
  15. wireshark:包重组
  16. Jenkins平台搭建
  17. RoI Pooling 和 RoI Align
  18. 初中生也能看懂的狭义相对论(1.世界是什么?)(原子,质子和分子)(看不懂算我输)
  19. 吟游诗人——在线调戏谷歌新出的AI机器人Bard
  20. [SRv6] [华为] EVPN VPLS over SRv6实验

热门文章

  1. Socket桥(转载)
  2. hibernate要点
  3. iphone-common-codes-ccteam源代码 CCGraphics.m
  4. Java序列化技术与Protobuff
  5. postgresql数据库修改表
  6. Oracle TNS 不能启动
  7. 数据结构与算法之美-目录
  8. 【免费CDN】俄罗斯DDOS-Guard 支持ssl 防御1.5T
  9. php使用memcache存储session
  10. HomeKit推出已两年 但是苹果在智能家居上却被对手甩开了差距