第 2 页 - Python笔记
Python中重载

函数重载主要是为了解决两个问题。可变参数类型。可变参数个数。另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一...

字符串格式化:%和.format

8字符串格式化:%和.format.format在许多方面看起来更便利.对于%最烦人的是它无法同时传递一个变量和元组.你可能会想下面的代码不会有什么问题:"hithere%s"%name但是,如果name...

python新式类和旧式类的区别

主要区别是多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索

__new__和__init__的区别

创建一个新实例时调用__new__,初始化一个实例时用__init__,这是它们最本质的区别。__new__是一个静态方法,而__init__是一个实例方法。__new__方法会返回一个创建的实例,而__init__什么都不返回。只有...

Python的实例方法,类方法,静态方法之间的区别及调用关系

在类里面定义的函数就是方法,类方法需要@classmethod修饰并且有个隐藏参数cls,实例方法必须有个参数self,静态方法必须有@staticmethod修饰,类和实例都可以访问静态方法,实例可以访问实例方法也可以访问类方...

什么lambda函数(匿名函数),匿名函数有什么局限性

匿名函数,也就是lambda函数,通常用在函数体比较简单的函数上。匿名函数顾名思义就是函数没有名字,因此不用担心函数名冲突。不过Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。

Python的作用域以及Python搜索变量的顺序

Python作用域简单说就是一个变量的命名空间。代码中变量被赋值的位置,就决定了哪些范围的对象可以访问这个变量,这个范围就是变量的作用域。在Python中,只有模块(module),类(class)以及函数(def、lambda)才会...

Python的装饰器内部实现原理

装饰器本质上是一个Python函数,是闭包的一种实现,它的作用是让其他函数在不需要做任何代码变动的前提下增加额外功能。使用装饰器的时候,解析器把被装饰的函数作为参数传递给装饰器,然后再返回一个函数对象,装饰器内部实现需要额外增...

什么是闭包?

简单说,闭包就是根据不同的配置信息得到不同的结果,装饰器就是一种闭包,闭包有效的减少了函数所需定义的参数数目。defline_conf(a,b):defline(x):returna*x...

python asyncio的原理?

asyncio这个库就是使用python的yield这个可以打断保存当前函数的上下文的机制,封装好了selector摆脱掉了复杂的回调关系

IO密集型和CPU密集型区别?

IO密集型:系统运行,大部分的状况是CPU在等I/O(硬盘/内存)的读/写CPU密集型:大部分时间用来做计算,逻辑判断等CPU动作的程序称之CPU密集型。

并行(parallel)和并发(concurrency)?

并行:同一时刻多个任务同时在运行不会在同一时刻同时运行,存在交替执行的情况。实现并行的库有:multiprocessing实现并发的库有:threading程序需要执行较多的读写、请求和回复任务的需要大量的IO操作,IO密集型操...

python中进程与线程的使用场景?

多进程适合在CPU密集操作(cpu操作指令比较多,如位多的的浮点运算)。多线程适合在IO密性型操作(读写数据操作比多的的,比如爬虫)