Python 什么是封装
封装是面向对象语言(如Python、Java等)的关键概念之一。封装用于限制对方法和变量的访问。在封装中,代码和数据被包装在一个单独的单元中,以防止意外修改。
封装是将数据(变量)和操作数据的代码(方法)一起封装为一个单一单元的机制。在封装中,类的变量将对其他类隐藏,并且只能通过其当前类的方法访问。
封装示例
假设我们有一家公司向学生、工程师和专业人士销售课程。该公司的不同部门包括运营、财务、账户、销售等。现在,如果财务部的员工需要2022年的销售记录,那么他/她不能直接访问。
要访问,财务部的员工需要从销售部门的团队成员那里获得许可。因此,销售数据对其他部门隐藏。同样,公司的财务数据只能由财务部门访问,并对其他部门隐藏。账户、销售、财务、运营、市场等数据对其他部门隐藏。
在Python中使用类实现封装
封装的另一个示例可以是一个类,因为类将数据和方法组合成一个单一单元。在这里,自定义函数
demofunc()显示学生记录,在其中我们可以访问公共数据成员。通过对象st1、st2、st3、st4,我们可以访问类demofunc()的公共方法。
示例
class Students:
def __init__(self, name, rank, points):
self.name = name
self.rank = rank
self.points = points
# custom function
def demofunc(self):
print("I am "+self.name)
print("I got Rank ",+self.rank)
# create 4 objects
st1 = Students("Steve", 1, 100)
st2 = Students("Chris", 2, 90)
st3 = Students("Mark", 3, 76)
st4 = Students("Kate", 4, 60)
# call the functions using the objects created above
st1.demofunc()
st2.demofunc()
st3.demofunc()
st4.demofunc()
输出
I am Steve
I got Rank 1
I am Chris
I got Rank 2
I am Mark
I got Rank 3
I am Kate
I got Rank 4
Python访问修饰符
让我们来看一下Python中的访问修饰符,以理解封装和数据隐藏的概念 –
- 公共(public)
- 私有(private)
- 受保护(protected)
公共访问修饰符
公共成员可以从类内部或外部访问。
私有访问修饰符
私有成员只能在类内部访问。通过在成员名前面加上两个下划线来定义私有成员,例如 –
__age
受保护的访问修饰符
受保护的成员可从类内部和其子类中访问。通过在成员名称前面加下划线来定义受保护的成员,例如−
_points