Python 7天快速入门完整视频教程:https://www.bilibili.com/video/BV1o84y1Z7J1
隐藏和封装
封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
Python里私有属性和方法的定义,命名以__开头(两个下划线)
私有属性和方法,外部对象无法直接访问,否则报错。
私有属性和方法只能类内部通过self访问使用。
# 定义人类
class Person:
# 属性 姓名
name = None
# 属性 年龄
age = None
# 私有属性 得分
__score = None
def __init__(self, name, age, score):
self.name = name
self.age = age
self.__score = score
# 成员方法 say 打印输出姓名和年龄
def say(self):
print(f"姓名:{self.name},年龄:{self.age},成绩:{self.__score}")
self.__check_score()
# 定义私有方法 不及格,叫家长来下
def __check_score(self):
if self.__score < 60:
print(f"叫{self.name}的家长来下学校")
# 创建一个对象 zhangsan
zhangsan = Person("张三", 11, 55)
# zhangsan.__check_score() # 访问私有方法 报错
# print(zhangsan.__age) # 访问私有属性 报错
# 创建一个对象 lisi
lisi = Person("李四", 11, 55)
lisi.say()