Python入门-面向对象三大特性-封装
一、封装
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
所以,在使用面向对象的封装特性时,需要:
- 将内容封装到某处
- 从某处调用被封装的内容
第一步:将内容封装到某处

self 是一个形式参数:
- 当执行 obj1 = Foo('wupeiqi', 18 ) 时,self 等于 obj1
- 当执行 obj2 = Foo('alex', 78 ) 时, self 等于 obj2
所以,内容其实被封装到了对象 obj1 和 obj2 中,每个对象中都有 name 和 age 属性,在内存里类似于下图来保存。

第二步:从某处调用被封装的内容
调用被封装的内容时,有两种情况:
-
通过对象直接调用
-
通过self间接调用
#通过对象调用方法============================================= class Foo: def __init__(self, name, age): self.name = name self.age = age obj1 = Foo('wupeiqi', 18) print(obj1.name)# 直接调用obj1对象的name属性 print(obj1.age) # 直接调用obj1对象的age属性 #通过self进行间接调用被封装的内容=============================== class Foo: def __init__(self, name, age): self.name = name self.age = age def get_info(self): print(self.name) print(self.age) obj1 = Foo('wupeiqi', 18) obj1.get_info() """ 默认会将obj1传给self参数,即:obj1.detail(obj2), 此时方法内部的 self = obj1,即:self.name 是 wupeiqi ;self.age 是 18 """
综上所述,对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。

浙公网安备 33010602011771号