简单介绍python封装的基本知识
作者:人生与戏 发布时间:2022-04-16 18:51:11
标签:python,封装,知识
python封装简介
1.效果图:
对比一:
对比二:
2.学习来源代码:
# 封装是面向对象的三大特性之一
# 封装指的是隐藏对象中一些不希望被外部所访问到的属性或方法
# 如何隐藏一个对象中的属性?
# - 将对象的属性名,修改为一个外部不知道的名字
# 如何获取(修改)对象中的属性?
# - 需要提供一个getter和setter方法使外部可以访问到属性
# - getter 获取对象中的指定属性(get_属性名)
# - setter 用来设置对象的指定属性(set_属性名)
# 使用封装,确实增加了类的定义的复杂程度,但是它也确保了数据的安全性
# 1.隐藏了属性名,使调用者无法随意的修改对象中的属性
# 2.增加了getter和setter方法,很好的控制的属性是否是只读的
# 如果希望属性是只读的,则可以直接去掉setter方法
# 如果希望属性不能被外部访问,则可以直接去掉getter方法
# 3.使用setter方法设置属性,可以增加数据的验证,确保数据的值是正确的
# 4.使用getter方法获取属性,使用setter方法设置属性
# 可以在读取属性和修改属性的同时做一些其他的处理
# 5.使用getter方法可以表示一些计算的属性
class Dog:
'''
表示狗的类
'''
def __init__(self , name , age):
self.hidden_name = name
self.hidden_age = age
def say_hello(self):
print('大家好,我是 %s'%self.hidden_name)
def get_name(self):
'''
get_name()用来获取对象的name属性
'''
# print('用户读取了属性')
return self.hidden_name
def set_name(self , name):
# print('用户修改了属性')
self.hidden_name = name
def get_age(self):
return self.hidden_age
def set_age(self , age):
if age > 0 :
self.hidden_age = age
d = Dog('旺财',8)
# d.say_hello()
# 调用setter来修改name属性
d.set_name('小黑')
d.set_age(-10)
# d.say_hello()
print(d.get_age())
来源:https://www.cnblogs.com/FlyingLiao/p/11324474.html
0
投稿
猜你喜欢
- 本文实例讲述了Python函数式编程。分享给大家供大家参考,具体如下:函数式编程就是一种抽象程度很高的编程范式,从计算机硬件->汇编语
- 1 逻辑数据库和表的设计数据库的逻辑设计、包括表与表之间的关系是优化关系型数据库性能的核心。一个好的逻辑数据库设计可以为优化数据库和应用程序
- 1.字典的概念字典和列表类似,也是可变序列,不过和列表不同,它是无序的可变序列,保存的内容是以键值对(key:value)形式存放的 字典的
- 本文实例讲述了Python高级编程之消息队列(Queue)与进程池(Pool)。分享给大家供大家参考,具体如下:Queue消息队列1.创建i
- 网络上关于各种语言和应用软件的速查手册和快速参考指南有很多很多,不幸的是当我们需要的时候,总是很难找到,所以我决定花点时间尽可能的收集更多的
- 如下所示:try:a=1except Exception as e: print (e)import tracebackimport sys
- 这篇文章主要介绍了python垃圾回收机制(GC)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 字典获取最大和最小value对应的keymy_dict = {'x':500, 'y':5874, '
- 目录什么是引用?引用在数组和对象中的使用引用的传递引用的返回引用的取消总结什么是引用?在 PHP 中引用意味着用不同的名字访问同一个变量内容
- 问:如何让内联框架里面的网页背景透明?(用iframe嵌套一网页,怎么能够设置其背景为透明以便能显示父框架中网页的背景图?)答:这是需要 I
- 思路:使用socket传输文件过程中,如果单次传输每次只能发送一部分数据,如果针对大文件,一次传输肯定是不行的,所以需要我们在传输的时候提前
- 假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律?
- 本文实例为大家分享了python面向对象版的学生信息管理系统的具体代码,供大家参考,具体内容如下功能:1.能循环输入内容2.展示功能-1.新
- CREATE TABLE table1( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nva
- 写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,
- asp之家注:本篇asp留言本教程可以说是我见过的最详细,写的最认真的,最适合初学者来学习asp的一篇教程。在此感谢作者hemooday。可
- 网页链接:https://www.huya.com/g/4079 这里的主要步骤其实还是和我们之前分析的一样,如下图所示:这里再简单带大家看
- 乱码原因:源码文件的编码格式为utf-8,但是window的本地默认编码是gbk,所以在控制台直接打印utf-8的字符串当然是乱码了!解决方
- 完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看 <% '-------------------
- Python生成指定数量的优惠码打开Python开发工具IDLE,新建‘codeGen.py'文件,并保存导入需要的包,这里需要ra