Python3 基础教程 - 廖雪峰......................................................................................... 167 继承和多态 .................................................................................................. 所以,面向对象的设计思想是抽象出 Class,根据 Class 创建 Instance。 面向对象的抽象程度又比函数要高,因为一个 Class 既包含数据,又包 含操作数据的方法。 小结 数据封装、继承和多态是面向对象的三大特点,我们后面会详细讲解。 类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记 类是抽象的模板,比如 Student 类,而实例是根据类创建出来的一个个 解释器可能会把 __name 改成不同的变量名。 总的来说就是,Python 本身没有任何机制阻止你干坏事,一切全靠自觉。 参考源码 protected_student.py 继承和多态 在 OOP 程序设计中,当我们定义一个 class 的时候,可以从某个现有的 class 继承,新的 class 称为子类(Subclass),而被继承的 class 称为基 类、父类或超类(Base0 码力 | 531 页 | 5.15 MB | 1 年前3
06. 李欣宜 扩展Python的语法和语义 表达式和语句区分,表达式内部不能包含语句 4. 没有语法宏,代码操作不够自动 5. 没有variant类型(只能靠一大堆抽象类和继承去workaround) 6. 对数据类型的方法不能扩展, 或者进行扩展是初级的,没有基于 类型的多态 那么告辞? 搭嘎!阔托瓦鲁! 摆 脱 编 程 语 言 给 你 的 限 制 Python有一堆好东西: 1. Python有良好的启动速度(看向Julia) 2. Python的pack 就理解为所谓的“函数式编程”,这一想法是完全错误的。 随着闭包和高阶函数逐渐推广,证明了函数式编程的实用性。但一些基础的东西被众多 新旧语言吸收,不是说他们就靠近了函数式编程。 引用透明, (基于函数类型的)多态,基于类型递归、递归类型、递归函数的问题求解 模型,都是函数式编程极为重要的组成部分。 没有这些,不要开口就“函数式,函数式”,否则,不仅误导新人,还会沦为老手们的 笑柄;而Python离id0 码力 | 39 页 | 3.69 MB | 1 年前3
Python 标准库参考指南 2.7.18 此函数接受一个输入源和一个可选的基准 URL 并返回一个经过完整解析可供读取的InputSource。 输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析器将使用此函数来针对它 们的 parse() 方法实现多态 source 参数。 19.13. xml.sax.saxutils —SAX 工具集 869 The Python Library Reference, 发布 2.7.18 19.14 xml 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而是直 接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由于强调 接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会采用hasattr() 检测或是EAFP 编程。 EAF0 码力 | 1552 页 | 7.42 MB | 10 月前3
Python 标准库参考指南 2.7.18 此函数接受一个输入源和一个可选的基准 URL 并返回一个经过完整解析可供读取的InputSource。 输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析器将使用此函数来针对它 们的 parse() 方法实现多态 source 参数。 19.13. xml.sax.saxutils —SAX 工具集 869 The Python Library Reference, 发布 2.7.18 19.14 xml 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而是直 接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由于强调 接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会采用hasattr() 检测或是EAFP 编程。 EAF0 码力 | 1552 页 | 7.42 MB | 10 月前3
Python 标准库参考指南 2.7.18 此函数接受一个输入源和一个可选的基准 URL 并返回一个经过完整解析可供读取的InputSource。 输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析器将使用此函数来针对它 们的 parse() 方法实现多态 source 参数。 19.13. xml.sax.saxutils —SAX 工具集 869 The Python Library Reference, 发布 2.7.18 19.14 xml 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而是直 接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由于强调 接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会采用hasattr() 检测或是EAFP 编程。 EAF0 码力 | 1552 页 | 7.42 MB | 10 月前3
Python 标准库参考指南 3.6.15 此函数接受一个输入源和一个可选的基准 URL 并返回一个经过完整解析可供读取的InputSource。 输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析器将使用此函数来针对它 们的 parse() 方法实现多态 source 参数。 20.12 xml.sax.xmlreader —用于 XML 解析器的接口 源代码: Lib/xml/sax/xmlreader.py SAX 解 析 器 实 现 了XMLReader 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而是直 接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由于强调 接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会采用hasattr() 检测或是EAFP 编程。 EAF0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.6.15 此函数接受一个输入源和一个可选的基准 URL 并返回一个经过完整解析可供读取的InputSource。 输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析器将使用此函数来针对它 们的 parse() 方法实现多态 source 参数。 20.12 xml.sax.xmlreader —用于 XML 解析器的接口 源代码: Lib/xml/sax/xmlreader.py SAX 解 析 器 实 现 了XMLReader 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而是直 接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由于强调 接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会采用hasattr() 检测或是EAFP 编程。 EAF0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.7.13 个 经 过 完 整 解 析 可 供 读 取 的InputSource。输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析 器将使用此函数来针对它们的 parse() 方法实现多态 source 参数。 21.12 xml.sax.xmlreader --- 用于 XML 解析器的接口 源代码: Lib/xml/sax/xmlreader.py SAX 解析器实现了XMLReader 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而 是直接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由 于强调接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使 1699 The Python Library Reference, 发布 3.7.13 用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类0 码力 | 1846 页 | 9.09 MB | 10 月前3
Python 标准库参考指南 3.7.13 此函数接受一个输入源和一个可选的基准 URL 并返回一个经过完整解析可供读取的InputSource。 输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析器将使用此函数来针对它 们的 parse() 方法实现多态 source 参数。 21.12 xml.sax.xmlreader --- 用于 XML 解析器的接口 源代码: Lib/xml/sax/xmlreader.py SAX 解 析 器 实 现 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而是直 接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由于强调 接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会采用hasattr() 检测或是EAFP 编程。 EAF0 码力 | 1961 页 | 9.14 MB | 10 月前3
Python 标准库参考指南 3.8.20 个 经 过 完 整 解 析 可 供 读 取 的InputSource。输入源的给出形式可以为字符串、文件类对象或InputSource 对象;解析 器将使用此函数来针对它们的 parse() 方法实现多态 source 参数。 20.12 xml.sax.xmlreader --- 用于 XML 解析器的接口 源代码: Lib/xml/sax/xmlreader.py SAX 解析器实现了XMLReader 指一种编程风格,它并不依靠查找对象类型来确定其是否具有正确的接口,而 是直接调用或使用其方法或属性(“看起来像鸭子,叫起来也像鸭子,那么肯定就是鸭子。”)由 于强调接口而非特定类型,设计良好的代码可通过允许多态替代来提升灵活性。鸭子类型避免使 用type() 或isinstance() 检测。(但要注意鸭子类型可以使用抽象基类 作为补充。) 而往往会 采用hasattr() 检测或是EAFP 编程。 E0 码力 | 1927 页 | 9.69 MB | 10 月前3
共 22 条
- 1
- 2
- 3













