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. mysql索引和缓存

    mysql有缓存,缓存的设置见[转]MySql查询缓存机制

  2. solr单机版的搭建

    一.solr单机版的搭建 1.运行环境 solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(ja),本教va写的Servlet容器程 ...

  3. 3D 灯光介绍

    光特性 参考OpenGL的光照模型,把光分成4种独立的成分: 环境光 散射光 镜面光 发散光 环境光:ambient light 环境光是那些在环境中进行了充分的散射,无法分辨其方向的光.它会均匀的照 ...

  4. nginx-301重定向开始

    日常工作中使用301重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变.SEO优化.等等,301重定向可以很方便的使页面实现跳转. 参考 URL重写模块 一.首先更改配置 ...

  5. IEnumerable中的 Any方法

    IEnumerable类中的 Any方法,表示集合中有任何一元素满足条件,返回就true , 该方法有两个重载 1. 不带任何参数,表示集合中有元素 2. 参入一个 Func<TSource, ...

  6. ubuntu12.04安装Vmware Tools

    在VMware下安装Ubuntu,那么必须安装VMware-tools,才能获得更好的体验,包括屏幕分辨率.声音.和windows共享剪贴板等等. 个人觉得安装vmware-tools很重要的几点: ...

  7. 『邪恶のWIFI』搭建假冒WIFI热点等女神来蹭网啊 - -。

    pic by baidu 0x 00 ╮(╯▽╰)╭ 请喊我万恶的标题党  哈哈哈哈哈 0x 01 这里正题 虚拟机(Kali)不支持内置网卡,还好我有神器,插上我的RT8187L,开始搞起 参考资料 ...

  8. 转:Linux 内核中的 cdev_alloc和cdev_add

    内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {struct kobject kobj; ...

  9. c#使用UIA进行模拟点击操作

    之前,我写过一篇c#使用spy进行模拟操作的文章,有朋友在留言中提到了UIA进行操作,今天也使用UIA重新实现一次对vnc窗体的控制测试. 实现目标 在server框内填入192.168.2.200 ...

  10. Android 获取网络链接类型

    /** * 获取当前网络类型 * @return 0:没有网络 1:WIFI网络 2:WAP网络 3:NET网络 */ public int getNetworkType() { int netTyp ...