6.5 继承

当然,一门语言特性假设不支持继承那么名称类就失去了价值。子类继承父类的方法例如以下:

class DerivedClassName(BaseClassName):

<statement-1>

.

.

.

<statement-N>

名称BaseClassName必须定义在一个包括派生类定义的作用域中。在基类名称的位置上,其它任意表达式都是同意的、比如,当基类定义在其它模块中,这也是可用的。

class DerivedClassName(modname.BaseClassName):

派生类的运行过程和父类运行过程是同样的。当类对象构造好后,基类就被记住了。这为了解决属性引用问题:假设一个请求的属性在类中没有发现,程序就会搜素它的基类。假设基类它本身也是从其它类派生而来,那么就系继续搜素。

对派生类的实例化没有特别之处。DeriverdClassName()创建了一个类的新实例。方法引用依照例如以下使用:相应的类属性能够被搜索的,假设须要就会继续在基类中查询。假设这指向函数对象,则方法引用是合法的。

派生类能够重写基类的方法。由于当调用同对象的其它方法时候,方法没有特殊的权限。调用定义在同一基类的该基类方法可能终止派生类方法的覆盖。(对于C++程序猿来说,在python中全部的方法都是有效虚拟的)

在派生类中一个重写方法其实想扩展方法,而不是简单的取代同名的基类方法。最简单直接调用基类的方法就是用: BaseClassName.methodname(self, arguments)。这个对客户也很有空。(注意,假设基类在全局作用域中和BaseClassName都能够訪问, 这样的方法才有效)

Python有两种实现继承的内置函数:

方法一: 用isinstance()方法来检查实例类型:仅仅有obj._class_is 是整型或者其它从int继承的类,isinstance(obj, int)才会返回真。

方法二: 用issubclass()方法来检查类继承:issubclass(bool, int)结果是真得,由于bool是int的一个子类。可是issubclass(float, int)是假的由于float不是int的子类。

Python3.2官方文档翻译--继承的更多相关文章

  1. Python3.2官方文档翻译--作用域和命名空间

    6.2 Python作用域和命名空间 在介绍类之前.首先我想告诉你一些关于python作用域的规则. 类的定义很巧妙地运用了命名空间,你须要知道范围和命名空间的工作原理以能全面了解接下来发生的. 顺便 ...

  2. Python3.2官方文档翻译--实例对象和方法对象

    6.3.3 实例对象 如今我们用实例对象做什么呢?实例对象唯一可用的操作就是属性引用.如今有两种合法的属性名称:数据属性和方法. 数据属性相当于smallTalk中的实例变量,C++中的数据成员.数据 ...

  3. Python3.2官方文档翻译--标准库概览(一)

    7.1 操作系统接口 Os模块提供主要很多与操作系统交互的函数. >>> import os >>> os.getcwd() # Return the curren ...

  4. Python3.2官方文档翻译--迭代器

    6.9 迭代器 到眼下为止.你可能已注意到很多容器对象都能够用for语句进行循环: 这样的訪问风格清楚简洁方便. 迭代器的应用是python遍历统一.在这样的场景背后.for语句调用容器对象iter( ...

  5. Python3.2官方文档翻译--输出格式化

    第八章 标准库二 第二部分涵盖了很多更能满足专业开发者需求的高级模块.这些模块在小脚本中非常少出现. 8.1 输出格式化 Reprlib模块为大型的或深度嵌套的容器缩写显示提供了repr()函数的一个 ...

  6. Python3.2官方文档翻译--作用域和命名空间实例

    6.2.1 作用域和命名空间实例 以下的实例主要用来示范怎样引用不同的作用域和命名空间,keywordglobal和nonlocalru怎样影响变量绑定. 实例执行结果是: After local a ...

  7. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...

  8. GreenDao官方文档翻译(上)

    笔记摘要: 上一篇博客简单介绍了SQLite和GreenDao的比较,后来说要详细介绍下GreenDao的使用,这里就贴出本人自己根据官网的文档进行翻译的文章,这里将所有的文档分成上下两部分翻译,只为 ...

  9. Retrofit官方文档翻译

    Retrofit官方文档翻译 官方文档网址 http://square.github.io/retrofit/ 介绍 Retrofit 将你的 HTTP API 转换为 Java 接口. public ...

随机推荐

  1. asp.net微信开发第十篇----使用百度编辑器编辑图文消息,上传图片、微信视频

    经过几天的资料收集,终于完成了该编辑器的图片上传,视频插入功能,视频插入功能主要借用了该编辑器的插入iframe功能,如原始插件图: 修改后的插件图如下(其中我隐藏掉了一些不需要使用的插件功能): 配 ...

  2. Mysql数据数据[字节、长度、数据范围]一览表

    1.mysql有哪些数据类型: 主要包括以下五大类: 整数类型:BIT.BOOL.TINY INT.SMALL INT.MEDIUM INT. INT. BIG INT 浮点数类型:FLOAT.DOU ...

  3. Lesson 4: Know Your Tools

    Lesson 4: Know Your Tools "差劲的人

  4. maven实现tomcat热部署

    1.使用maven+tomcat事项热部署 1.1修改tomcat-user.xml <role rolename="manager-gui"/> <!--man ...

  5. ajaxfileupload

                 }         }                              setTimeout(                              }, s. ...

  6. 武汉科技大学ACM :1006: A+B for Input-Output Practice (VI)

    Problem Description Your task is to calculate the sum of some integers. Input Input contains multipl ...

  7. Win7下Solr4.10.1和TomCat8的安装

    1.系统为win7 64位系统,安装有wamp的环境,我的所有网站放在 d:\webserver下,域名指向该目录下的子目录: 2.安装TomCat8到 D:\Tomcat 8.0: 3.在 d:\w ...

  8. js中运算符的优先级

    不确定下面表达式的运算顺序? a>b?c:d+e a&&b==c 看看下表就清楚了,下表按优先级从最高到最低的列出,具有相同优先级按从左至右的顺序求值. 运算符 描述 . [] ...

  9. 利用js得到某个范围内的整数随机数

    Math.random()方法可以返回(0,1)之间的随机数,不包括0和1. 套用公式:Math.floor(Math.random()*可能的值的总数+第一个可能的值) 如得到(3,9]之间的随机数 ...

  10. ueditor从excel粘贴过来的表格不显示问题

    这是设置表格边框可见的办法