Python:修订数据类型、模块和包
This commit is contained in:
parent
28c878d398
commit
58dd3942c4
@ -15,6 +15,17 @@ date: 2022-11-19
|
||||
|
||||
**Python中的一切都是对象,变量是对象的引用!同时 Python 的动态语言特性变量和常量不需要事先声明类型。**
|
||||
|
||||
Python 不同于其他程序设计语言使用**存储期(存储空间生命周期)** 对变量和对象进行管理,Python 使用**引用计数**,即引用对象的变量个数,对变量和对象进行管理。
|
||||
|
||||
Python 可以使用 **id 函数**获取标识值(伪指针)、**type 函数**获取类型。
|
||||
|
||||
Python 中根据值是否可以改变,类型分为两类:
|
||||
|
||||
- **可变类型**:列表、字典、集合等。
|
||||
- **不可变类型**:数值、字符串、元组等。
|
||||
|
||||
如果对不可变类型的变量(引用的对象)的值进行变更、则会生成新的对象,然后变量重新引用新的对象。**赋值语句复制的是对象的引用而不是值。** *Python 的“变量”不同于其他程序语言的“变量”,Python 的“变量”翻译成“标志”更合适!*
|
||||
|
||||
**Python 3 内置类型**如下,除了各种数据类型,Python 解释器内建了还有很多其他类型,比如上下文管理器类型,模块、方法、代码对象、类型对象、内部对象等类型。
|
||||
|
||||
| 类型 | 可变性 | 描述 | 语法例子 |
|
||||
@ -101,6 +112,3 @@ $ print(keyword.kwlist)
|
||||
- 用小写字母拼写,多个单词用下划线连接。
|
||||
- 受保护的实例属性用单个下划线开头(后面会讲到)。
|
||||
- 私有的实例属性用两个下划线开头(后面会讲到)。
|
||||
|
||||
Python 使用 `type() 检查变量的类型。
|
||||
Python 使用 `id() 查看变量的内存地址。
|
||||
|
@ -22,7 +22,7 @@ date: 2022-11-28
|
||||
|
||||
### 自定义模块
|
||||
|
||||
自己开发完成复用的模块。
|
||||
自主开发完成复用的模块。
|
||||
|
||||
### 标准模块
|
||||
|
||||
@ -45,7 +45,9 @@ Python 拥有大量的第三方模块,这也是其核心优点之一。基本
|
||||
|
||||
Python 为了避免模块名冲突,又引入了按目录来组织模块的方法,称为包(Package),**包是模块的集合,比模块又高一级的封装。**包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。**包名通常为全部小写,避免使用下划线。**
|
||||
|
||||
简单来说,包就是文件夹,但该文件夹下必须存在 `__init__.py` 文件, 该文件的内容可以为空。`__init__.py` 用于标识当前文件夹是一个包。
|
||||
### 标准包
|
||||
|
||||
简单来说标准包就是文件夹下必须存在 `__init__.py` 文件,该文件的内容可以为空。如果没有该文件,Python 无法识别出标准包。Python 中导入包后会初始化并执行 `__init__.py` 进行初始化;在 `__init__.py` 中,如果将`__all__` 定义为列表,其中包含对象名称的字符串,程序就可以通过 * 的方式导入。
|
||||
|
||||
```markdown
|
||||
test.py
|
||||
@ -169,7 +171,7 @@ def func():
|
||||
func() # 从 module 导入的 func 被 main 的 func 覆盖了
|
||||
```
|
||||
|
||||
### 模块搜索路径
|
||||
### 模块路径搜索顺序
|
||||
|
||||
**不管在程序中执行了多少次import,一个模块只会被导入一次。**导入一个模块,Python 解析器对模块位置的搜索顺序是:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user