Python-14-class ABC 抽象类学习
ABC 的作用
该模块提供了在 Python 中定义 抽象基类 (ABC) 的组件,在 PEP 3119 中已有概述。
查看 PEP 文档了解为什么需要在 Python 中增加这个模块。(也可查看 PEP 3141 以及 numbers 模块了解基于 ABC 的数字类型继承关系。)
collections 模块中有一些派生自 ABC 的具体类;当然这些类还可以进一步被派生。此外,col...
2018-02-14 07:09:30 |
Lang
Python-14-class 类的接口
Python 中的接口问题
作为习惯了 java 语言的开发者来说,我首先想到的是,python 有接口吗?
然后查了一下。大部分的解答如下:
没有。在Python中没必要使用类似Java的interface。因为Python里有多继承和使用鸭子类型。
在Python中,协议就是接口。例如上下文管理协议,只要实现了对应的__enter__, __ex...
2018-02-14 07:09:30 |
Lang
Python-13-class 类的继承
类的继承
当然,如果不支持继承,语言特性就不值得称为“类”。
语法
派生类定义的语法如下所示:
class DerivedClassName(BaseClassName):
<statement-1>
.
.
.
<statement-N>
名称 BaseClassName 必须定义于包含派生类定义的作用域中。
基...
2018-02-14 07:09:30 |
Lang
Python-12-class 类的定义和使用
定义语法
和 java 非常类似
class ClassName:
<statement-1>
.
.
.
<statement-N>
类定义与函数定义 (def 语句) 一样必须被执行才会起作用。
(你可以尝试将类定义放在 if 语句的一个分支或是函数的内部。)
在实践中,类定义内的语句通常都是函数定义,但也允许有...
2018-02-14 07:09:30 |
Lang
Python-11-class 作用域和命名空间
主要学习知识点
类的定义+构造器
类的继承+接口
类的属性+方法
类的创建+调用
类
类提供了一种组合数据和功能的方法。创建一个新类意味着创建一个新类型的对象,从而允许创建一个该类型的新实例。
每个类的实例可以拥有保存自己状态的属性。一个类的实例也可以有改变自己状态的(定义在类中的)方法。
和其他编...
2018-02-14 07:09:30 |
Lang
Python-10-package 包
包
包是一种通过用“带点号的模块名”来构造 Python 模块命名空间的方法。
例如,模块名 A.B 表示 A 包中名为 B 的子模块。正如模块的使用使得不同模块的作者不必担心彼此的全局变量名称一样,使用加点的模块名可以使得 NumPy 或 Pillow 等多模块软件包的作者不必担心彼此的模块名称一样。
假设你想为声音文件和声音数据的统一处理,设计一个模块集合(一个“包”)。
由于存...
2018-02-14 07:09:30 |
Lang
Python-09-module 模块
模块
脚本
如果你从Python解释器退出并再次进入,之前的定义(函数和变量)都会丢失。
因此,如果你想编写一个稍长些的程序,最好使用文本编辑器为解释器准备输入并将该文件作为输入运行。
这被称作编写脚本。
模块
随着程序变得越来越长,你或许会想把它拆分成几个文件,以方便维护。
你亦或想在不同的程序中使用一个便捷的函数,而不必把这个函数复制到每一个程序中去。
为支持这些,Pyt...
2018-02-14 07:09:30 |
Lang
Python-08-iterator 迭代器
迭代器
方便的 for
到目前为止,您可能已经注意到大多数容器对象都可以使用 for 语句:
for element in [1, 2, 3]:
print(element)
for element in (1, 2, 3):
print(element)
for key in {'one':1, 'two':2}:
print(key)
for char in...
2018-02-14 07:09:30 |
Lang