-
Python-18-PIP 环境管理
概述
Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。
这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。
这个问题的解决方...
2018-02-14 07:09:30 |
Lang
-
Python-17-IOC 依赖注入
普通的例子
首先我们先看一个普通的类:
class Foo:
def __init__(self):
self.name = 'ryo'
def f1(self):
print(self.name)
基础知识
首先要明确的是,在python里,一切事物皆为对象
而所有的类都是对象,默认是由type创建
创建类的执行流程...
2018-02-14 07:09:30 |
Lang
-
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