1.嵌套函数(内部函数)
一般在什么情况下使用嵌套函数?
1).封装-数据隐藏外部无法访问“嵌套函数”。
2).贯彻DRY(Don’tRepeatYourself)原则嵌套函数,可以让我们在函数内部避免重复代码。
3).闭包
2.nonlocal关键字
nonlocal用来声明外层的局部变量。global用来声明全局变量。
3.LEGB规则
Python在查找“名称”时,是按照LEGB规则查找的:Local-->Enclosed-->Global-->Builtin
Local指的就是函数或者类的方法内部
Enclosed指的是嵌套函数(一个函数包裹另一个函数,闭包)
Global指的是模块中的全局变量
Built in指的是Python为自己保留的特殊名称。
4.面向对象
注:Python支持面向过程、面向对象、函数式编程等多种编程范式。
4.1 对象
将不同类型的数据、方法(即函数)放到一起,就是对象
4.2 类的定义
我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打包在一起”。
对象是类的具体实体,一般称为“类的实例”。类看做“饼干模具”,对象就是根据这个“模具”制造出的“饼干”。
Python中,“一切皆对象”。类也称为“类对象”,类的实例也称为“实例对象”。
4.2.1 定义类的语法格式如下:
class 类名:
类体
4.2.2
要点如下:
1.类名必须符合“标识符”的规则;一般规定,首字母大写,多个单词使用“驼峰原则”。
2.类体中我们可以定义属性和方法。
3.属性用来描述数据,方法(即函数)用来描述这些数据相关的操作。
4.2.3 _init__构造方法和__new__方法
类是抽象的,也称之为“对象的模板”。我们需要通过类这个模板,创建类的实例对象,然后才能使用类定义的功能。
个Python对象包含如下部分:
1.id(identity识别码)
2.type(对象类型)
3.value(对象的值)
(1)属性(attribute)
(2)方法(method)
4.3 实例属性和实例方法
4.3.1 实例属性
实例属性是从属于实例对象的属性,也称为“实例变量”
4.3.2 实例方法
实例方法是从属于实例对象的方法。实例方法的定义格式如下:
def 方法名(self[,形参列表]):
函数体方法的
调用格式如下:
对象.方法名([实参列表])
4.3.3 函数和方法的区别
1.都是用来完成一个功能的语句块,本质一样。
2.方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点。
3.直观上看,方法定义时需要传递self,函数不需要。
4.3.4 类对象、类属性、类方法、静态方法
5 内存分析实例对象和类对象创建过程
6._del__方法(析构函数)和垃圾回收机制
_del__方法称为“析构方法”,用于实现对象被销毁时所需的操作。