Skip to content

Latest commit

 

History

History
22 lines (11 loc) · 888 Bytes

File metadata and controls

22 lines (11 loc) · 888 Bytes

Python 面试相关

GIL锁

  • python的线程必须获取GIL(全局解释锁)才能执行,所以python的多线程实际上还是串行的。

Yeild

  • 保存当前变量和下一条指令地址的地址,跳出当前函数。当调用next时,获取之前保存的地址和变量,继续执行。

is和==的区别

is比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。

==比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法。

@classmethod 和 @staticmethod

如果在@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。

而@classmethod因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码。