自己在编程过程中习惯用函数def来封装模块,但是换了环境后发现同事大多采用class实现封装,两者之间有什么区别与优劣呢?
-
Class与Instance
Class是一个抽象概念,Instance是一个个具体的实现。
Class与Instance是面向对象编程最重要的两个概念。
-
Class类的优点
Class的优点是可以保存状态,如果不能保存状态,就需要通过参数把相关信息传递过来。
Class起到模板的作用,把一些通用的东西写进类定义中,也就是在’
__init__
'函数中。包括各种属性。定义了属性,在实例化时就必须输入相应的属性,不然报错。
-
函数
函数更像是面向过程编程,更易理解,但是当系统较大时,重复性就多。
Class有点像是将多个函数进行功能性封装,事实上,Class也确实是这么定义的。