首页 > 其他 > 详细

面向对象的三大特性

时间:2020-04-08 17:51:44      阅读:50      评论:0      收藏:0      [点我收藏+]

面向对象的三大特性

一、封装

封装是面向对象三大核心中最核心的一个特性。

封装就是将类的某些属性隐藏起来,然后通过接口对外开放,但是在外部不能直接进行查找属性。

在类内部的变量属性或者函数属性名前加上两个下划线。就实现了对该属性的隐藏,此时,通过外界就查不到该属性。

# 属性的隐藏
class Student:
	__school = "清华"
	
	def __init__(self,name,age):
		self.__name = name
		self.__age = age
		
	def tell_info(self):
		print("学校:%s	姓名:%s	年龄:%s"%(self.__school,self.__name,self.__age))
        
        
stu_1 = Student("tom",18)
print(stu_1.__school)  # 这种方法是查看不到该学校属性的。

print(stu_1._Student__school)  # 采用_类__属性的方法就可以查看了。

stu_1.__handsome = "帅"  # 定义完毕类之后在添加__属性,该属性是不会隐藏起来的。

通过上述的查看方式,就大概看出来,这个隐藏其实是一种变形,这个阶段主要发生在定义阶段,当执行类内部的代码时候,遇到__属性的方式就会将其变为_类__属性名的形式。这样我们就可以在外界通过这种形式调用查看该属性。

由于是在定义阶段发生的变形,因此,在外界我们在重新指定对象的属性的时候,是不会在发生变形的。

这种隐藏的方式并不是完全的没办法访问,但是如果你还想调用查看的话,请一开始就不要搞这种隐藏,多此一举。这种隐藏其内部是可以使用的,因为其内部在定义的时候都发生了转变,所以内部使用的方式也变成了_类__属性的方式。

那为什么要设置隐藏呢?

  1. 隐藏数据是为了限制外界对属性的直接修改。
  2. 通过接口操作可以在接口上附加额外的逻辑处理来控制隐藏数据。

面向对象的三大特性

原文:https://www.cnblogs.com/liqianxin/p/12660160.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!