一切都是对象
私有属性和私有方法(实现封装)
Python 对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:
- 通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。
- 类内部可以访问私有属性(方法)
- 类外部不能直接访问私有属性(方法)
- 类外部可以通过“_类名 私有属性(方法)名”访问私有属性(方法)
@property 装饰器
@property 主要用于帮助我们处理属性的读操作、写操作
class Employee:
def __init__(self,name,salary):
self._name = name
self._salary = salary
@property
def salary(self):
return self._salary
@salary.setter
def salary(self,salary):
if 100<salary<40000:
self._salary = salary
else:
print("录入有误")
emp1 = Employee("团子",30000)
print(emp1.salary)
emp1.salary = 4000
print(emp1.salary)
30000
4000
第 6 章(2) 面向对象进阶
面向对象三大特征介绍
Python 是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。
继承
Python 支持多重继承,一个子类可以继承多个父类。继承的语法格式如下:
class 子类类名(父类 1[,父类 2,...]):
类体
如果在类定义中没有指定父类,则默认父类是 object 类。
定义子类时,必须在其构造函数中调用父类的构造函数。调用格式如下:
父类名. init (self, 参数列表)
类成员的继承和重写
- 成员继承:子类继承了父类除构造方法之外的所有成员。
- 方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为“重写”
查看类的继承层次结构
通过类的方法 mro()或者类的属性 mro 可以输出这个类的继承层次结构。