1. dir
内置函数
- 在
Python
中对象几乎是无所不在的,我们之前学习的变量、数据、函数都是对象
在 Python
中可以使用以下两个方法验证:
- 在标识符/数据后输入一个
.
,然后按下TAB
键,iPython
会提示该对象能够调用的方法列表 - 使用内置函数
dir
传入标识符/数据,可以查看对象内的所有属性及方法
提示 __方法名__
格式的方法是 Python
提供的 内置方法 / 属性,稍后会给大家介绍一些常用的 内置方法 / 属性
序号 | 方法名 | 类型 | 作用 |
01 | | 方法 | 创建对象时,会被 自动 调用 |
02 | | 方法 | 对象被初始化时,会被 自动 调用 |
03 | | 方法 | 对象被从内存中销毁前,会被 自动 调用 |
04 | | 方法 | 返回对象的描述信息, |
1.1 __del__
方法
- 在
Python
中
- 当使用
类名()
创建对象时,为对象分配完空间后,自动调用__init__
方法 - 当一个对象被从内存中销毁前,会自动调用
__del__
方法
- 应用场景
-
__init__
改造初始化方法,可以让创建对象更加灵活 -
__del__
如果希望在对象被销毁前,再做一些事情,可以考虑一下__del__
方法
- 生命周期
- 一个对象从调用
类名()
创建,生命周期开始 - 一个对象的
__del__
方法一旦被调用,生命周期结束 - 在对象的生命周期内,可以访问对象属性,或者让对象调用方法
1.2 __str__
方法
- 在
Python
中,使用print
输出对象变量,默认情况下,会输出这个变量引用的对象是由哪一个类创建的对象,以及在内存中的地址(十六进制表示) - 如果在开发中,希望使用
print
输出对象变量时,能够打印自定义的内容,就可以利用__str__
这个内置方法了
注意:
__str__
方法必须返回一个字符串
2. 身份运算符
身份运算符用于 比较 两个对象的 内存地址 是否一致 —— 是否是对同一个对象的引用
- 在
Python
中针对None
比较时,建议使用is
判断
运算符 | 描述 | 实例 |
is | is 是判断两个标识符是不是引用同一个对象 | x is y,类似 id(x) == id(y) |
is not | is not 是判断两个标识符是不是引用不同对象 | x is not y,类似 id(a) != id(b) |
is 与 == 区别:
is
用于判断 两个变量 引用对象是否为同一个
==
用于判断 引用变量的值 是否相等
3 私有属性和私有方法
应用场景
- 在实际开发中,对象的某些属性或方法可能只希望在对象的内部被使用,而不希望在外部被访问到
- 私有属性就是对象不希望公开的属性
- 私有方法就是对象不希望公开的方法
定义方式
- 在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法
3.2 伪私有属性和私有方法
提示:在日常开发中,不要使用这种方式,访问对象的 私有属性 或 私有方法
Python
中,并没有 真正意义 的 私有
- 在给属性、方法命名时,实际是对名称做了一些特殊处理,使得外界无法访问到
- 处理方式:在名称前面加上
_类名
=>_类名__名称