目录
1. 简介
1.1 什么是类
某一个具体对象特征的抽象。
eg:
之之这个具体的人(对象):
①属性:年龄(18)性别(女)体重(50kg)身高(167cm)
②行为:穿(穿非常有品位的衣服) 吃(吃很健康的有机食品)住(住大别墅)
抽象出来的类:富有的大美女
①属性:年龄、性别、体重、身高
②行为:穿、吃、住
1.2 类的作用:
用抽象的类生成具体的对象
1.3 类的组成
名称、属性、方法
1.4 对象和类的关系
对象可以抽象出类,类可以实例化为对象
2. 定义类and实例化
# 定义一个类
class 类名:
# 公共的属性
# 对象的初始化方法
def __init__(self, 属性1, 属性2, ...): # ①init会在对象创建以后自动执行②调用类创建对象时,类后边的所有参数都会依次传递到init()中
self.属性1 = 属性1
self.属性2 = 属性2
...
# 其他方法
def 函数名1(self,...):
...
def 函数名2(self,...):
...
# 根据这个类创建一个对象(实例化)
变量 = 类名(属性1的值, 属性2的值, ...)
# 对变量属性进行赋值
变量.属性 = 属性值
# 对变量的方法进行调用
变量.方法名()
3. 封装
封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码;而外部使用用者只知道一 个接口(函数),只要接口(函数)名、参数不变,使用者的代码永远无需改变
- 封装的定义: 将类的一些属性和方法对外隐藏。隔离复杂度(黑盒子, 只需要暴露输入输出即可, 无需知道其内部实现逻辑)
- 封装的背景: 为属性和方法的操作添加权限
- 封装的手段: 在数据、属性、方法前面加
_
- 封装的本质: 私有化(
_x或__xx
)明确区分内外 + 隔离复杂度
代码样例:
class A:
__N=0 # 会变形为_A__N
def __init__(self):
self.__X=10 # 变形为self._A__X
def __foo(self): # 变形为_A__foo
print('from A')
def bar(self):
self.__foo() # 只有在类内部才可以通过__foo的形式访问到.
python下划线命名模式总结: