- 在什么时候需要使用OOP?
一般而言 我们称python 为脚本语言
多数脚本类的 直接面向过程 写上多个函数 就可以解决问题
但是 当项目是大型的时候 一定要考虑 代码的复用性
通过合适的代码结构和封装 减少犯错的可能性
在自由度和可读性可维护性之间的一种相对较优的妥协 妥协的目的在于通过规范化的操作和封装 较少团队开发维护的成本 优化开发体验
过度封装的问题 比较常见
OOP
FP 函数式编程关键在于不可变性 只有不可变了 才不用考虑时间
代码应该尽可能使用oop和fp 两种范式 命令式(过程式)的代码是很不友好的
-
在什么时候使用类装饰器?
类装饰器的举例 -
你用过元类嘛?
-
在什么时候用静态方法什么时候使用类方法?
方法跟类有关,但在实现时并不需要引用类或者实例,例如,设置环境变量,修改另一个类的变量,等。这个时候,我们可以使用静态方法。
类方法采用装饰器@classmethod来定义
是否与类或者实例进行绑定,这就是实例方法,类方法,静态方法的区别
实例方法,第一个参数必须要默认传实例对象,一般习惯用self。
静态方法,参数没有要求。
类方法,第一个参数必须要默认传类,一般习惯用cls。
-
你了解那些管理属性? call , init ,
__new__都是在什么时候被触发?__getattr__和__getattribute__应用有什么不同? -
你知道标准库里面的多少个模块?你能在需要的时候知道这个功能其实标准库里面已经实现了?
-
什么时候用signal?假如你会django你知道django的signal是什么?你了解orm嘛?
-
asyncore,contextlib, functools, collections, heapq,itertools,
SocketServer, weakref,operator(知道3个就算)这些你会几个? -
python的多态是什么?
-
在什么场景可以尝试python的设计模式中的XX(能想到2个场景就算)?
-
在什么时候可以使用Mixin?
-
在什么时候可以使用python的闭包?
-
你曾经用过yield嘛?生成器和迭代器的区别和应用场景是什么?
-
在什么可以使用python的函数式编程?
-
future模块里面都有什么定义的用法?
-
什么时候用回调?