Python入门-面向对象三大特性-封装
2024-10-20 13:31:19
一、封装
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
所以,在使用面向对象的封装特性时,需要:
- 将内容封装到某处
- 从某处调用被封装的内容
第一步:将内容封装到某处
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间接获取被封装的内容。
最新文章
- SUSE查看版本号
- HTTP解析
- linux系统定时任务
- android笔记:DatePickerDialog日期设置对话框
- 关于启明星系统(OA系统,预定系统,请假系统等)安全性的说明
- selenium依次点击页面的删除按钮
- java连接mysql(二)
- 关于MFC监听器的相关了解
- Android 系统开发学习杂记(转)
- lightoj 1011 (状态压缩dp)
- 每天一条linux命令——shutdown
- COGS 577 蝗灾 [CDQ分治入门题]
- 在线App开发平台——应用之星傻瓜式开发平台
- iOS内存管理系列之一:对象所有权与引用计数
- poj 3046 Ant Counting (DP多重背包变形)
- ECSTORE关于MONGODB安装
- 无需安装Mono的Jexus
- 进程池与线程池(concurrent.futures)
- jQuery ajaxForm和 ajaxSubmit注意
- ST表与树状数组
热门文章
- 28 面向对象编程 instanceof 代码 小结 父类引用指向子类对象
- 关于alertmanager报No private IP address found, and explicit IP not provided
- Python之VSCode
- C 上楼梯 中国石油大学新生训练赛#11
- loj2341「WC2018」即时战略(随机化,LCT/动态点分治)
- python3 爬虫2--发送请求1
- Mac安装和配置Maven 及其第二次启动报错问题解决
- springcloud如何实现服务的注册?
- 为什么 wait(), notify()和 notifyAll ()必须在同步方法或 者同步块中被调用?
- JVM调优常用参数配置