引入:面向对象编程的三大特性
面向对象编程,是许多编程语言都支持的一种编程思想。
简单理解就是:基于模板(类)去创建实体(对象),使用对象完成功能开发。
面向对象编程包含3大主要特性:
本小节将围绕封装展开讲解。
正片开始
封装
封装表示的是将现实世界事物的:
封装到类中,描述为:
从而完成程序对现实世界事物的描述。
对用户隐藏的属性和行为
现实世界中的事物,有属性和行为。
但不代表这些属性和行为都是开放给用户使用的。
以手机为例:

私有成员
类中也提供了类似的方法来隐藏部分不对用户公开的成员,称之为定义 私有成员
- 私有成员变量:变量名以
__开头(2个下划线)
- 私有成员方法:方法名以
__开头(2个下划线)
QuickStart:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Phone:
IMEI = None # 序列号
producer = None # 厂商
__current_voltage = None # 当前电压(私有成员变量)
def call_by_5g(self):
print("5g通话已开启")
def __keep_single_core(self): # 私有成员方法
print("让CPU以单核模式运行以节省电量")
phone1 = Phone()
print(phone1.__current_voltage) # 报错
phone1.__keep_single_core() # 也会报错
|
私有成员虽然无法直接被类对象使用,但是可以被其他的成员使用。
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class Phone:
def __init__(self,__current_voltage):
self.__current_voltage = __current_voltage # 当前电压(私有成员变量)
def __keep_single_core(self): # 私有成员方法
print("让CPU以单核模式运行以节省电量")
def call_by_5g(self):
if self.__current_voltage >= 5:
print("5g通话已开启")
else:
self.__keep_single_core()
print('电量不足,无法使用5g通话,并已设置为单核运行进行省电。')
phone1 = Phone(22)
phone1.call_by_5g()
phone2 = Phone(3)
phone2.call_by_5g()
|
可以看到此处除了call_by_5g的普通方法访问了私有方法,还通过__init__定义了私有方法的值,更是印证了上面那点。