面向对象编程其实就是抽象和封装,具体的我们不展开讨论,大家可以自己进行搜索的学习,今天主要学习一下python中编写类使用的几个知识点
1、@property装饰器
通常我们将属性命名为已下划线开头,暗示属性受保护,如果想访问该属性需要使用getter(访问器)和setter(修改器)方法进行对应的操作,如果要做到这点,就可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便,下面例子中属性name和age就是使用@property来修饰属性。
2、_slots__魔法
python是动态语言,允许我们在程序运行时给对象绑定新的属性或方法。如果是限制在运行时候给类添加属性,需要使用 slots__变量,来限制该class实例能添加的属性。只有在 _slots__变量中的属性才能添加,没有在slots变量中的属性添加失败。(只有子类声明 slots 的时候,才会继承父类的slots。如果子类不声明slots变量则不会进行继承),比如下面Person类定义中动态添加“_gender”属性
class Person(object):