摘要:
什么是闭包 在一个外函数中定义了一个内函数,内函数里使用了外函数的局部变量,并且外函数的返回值是内函数的引用。一般情况下,如果一个函数结束,函数内部的所有东西都会释放掉,还给内存,局部变量都会消失,但是闭包是一种特殊情况。如果外函数在结束的时候发现有自己的局部变量会在内函数中使用到,就把这个局部变量 阅读全文
摘要:
全局变量 定义一个函数,它读取两个变量的值:一个是局部变量a,是函数的参数,另一个是变量b,这个函数没有定义它 出现这样的错误并不奇怪,因为全局变量b并没有赋值,使用dis反汇编一下,可以看到是往栈里load了全局变量b 怎么优化这个程序?只需要先给全局变量b赋值,然后再调用f 局部变量 下面的f2 阅读全文
摘要:
实例方法 第一个参数是"self",表示实例对象,通过它传递实例的属性和方法。只能由实例调用 类方法 使用装饰器@classmethod,第一个参数可以是"cls",也可以是"self",通过它传递类的属性和方法。可以由类和实例调用 假设我有一个学生类和一个班级类,想要实现的功能为:班级类含有类方法 阅读全文
摘要:
前言 有一些对象我们只需要一个,比如说:线程池、缓存、对话框、处理偏好设置和注册表的对象、日志对象、充当打印机、显卡等设备的驱动程序的对象。这类对象只能有一个实例,如果制造出多个实例,就会导致很多问题产生,比如:程序的行为异常、资源使用过量,或者是不一致的结果 代码实现 阅读全文