1.面向对象是什么?
是程序开发的思想,将方法和属性存在“容器”中,是数据和功能的集合体
2.相关概念
3.面向对象的三大特点
-
封装
-
定义:
- 将属性和方法包装在一个抽象类中,方法的细节在类的内部
-
为什么要隐藏属性?
- 隔离复杂度,针对数据属性防止使用者随意修改属性值,提供接口给使用者进行操作,在提供的接口里面严格控制
-
如何隐藏属性?
-
基于类隐藏。在属性(数据/函数)前面加上__
-
class Test: __x = 10 def __func(self): print("test") print(Test.__x) # AttributeError print(Test.__func) # AttributeError
-
-
基于对象隐藏。在属性(数据)前面加上__
-
class Test: def __init__(self,name,age): self.__name = name self.__age = age def func(self): print(self.__name) print(self.__age) test = Test('xx',10) print(test.name) # AttributeError print(test.age) # AttributeError print(test.func()) # 可正常执行
-
-
-
隐藏的本质:
-
基于类隐藏
- 1.改名操作。在类的名称空间会对隐藏的属性前面加上:_类名__属性名,想要访问就需要使用类名._类名__属性名
-
class Test: __x = 10 def __func(self): print("test") print(Test._Test__x) print(Test._Test__func)
-
- 1.改名操作。在类的名称空间会对隐藏的属性前面加上:_类名__属性名,想要访问就需要使用类名._类名__属性名
-
-