前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小朋友学Python(21):继承

小朋友学Python(21):继承

作者头像
海天一树
发布2018-04-17 11:54:58
5770
发布2018-04-17 11:54:58
举报
文章被收录于专栏:海天一树

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

需要注意的地方:继承语法 class 派生类名(基类名)://… 基类名写在括号里,基本类是在类定义的时候,在元组之中指明的。 在python中继承中的一些特点:

1:在继承中基类的构造(init()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。 2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别在于类中调用普通函数时并不需要带上self参数 3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。 如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。

语法:

派生类的声明,与他们的父类类似,继承的基类列表跟在类名之后,如下所示:

代码语言:javascript
复制
class SubClassName (ParentClass1[, ParentClass2, ...]):

例1

代码语言:javascript
复制
class Parent:       
   number = 100
   def __init__(self):
      print "Invoke parent constructor method"
   def parentMethod(self):
      print 'Invoke parent method'
   def setNumber(self, num):
      self.number = num
   def getNumber(self):
      print "Parent's number :", self.number
class Child(Parent): 
   def __init__(self):
      print "Invoke child constructor method"
   def childMethod(self):
      print 'Invoke child method'
c = Child()         
c.childMethod()      
c.parentMethod()  
c.setNumber(200)   
c.getNumber()

运行结果:

代码语言:javascript
复制
Invoke child constructor method
Invoke child method
Invoke parent method
Parent’s number : 200

python支持多继承:

代码语言:javascript
复制
class A:        # 定义类 A
.....
class B:         # 定义类 B
.....
class C(A, B):   # 继承类 A 和 B
.....

与类相关的两个方法: issubclass() -判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup) isinstance(obj, Class) 如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true,否则返回false。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海天一树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 例1
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档