简单介绍python封装的基本知识


Posted in Python onAugust 10, 2019

python封装简介

1.效果图:

对比一:

简单介绍python封装的基本知识

对比二:

简单介绍python封装的基本知识

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())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python批量按比例缩小图片脚本分享
May 21 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
python select.select模块通信全过程解析
Sep 20 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 #Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 #Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 #Python
基于python二叉树的构造和打印例子
Aug 09 #Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 #Python
Django ORM 自定义 char 类型字段解析
Aug 09 #Python
解决使用export_graphviz可视化树报错的问题
Aug 09 #Python
You might like
ie6 动态缩略图不显示的原因
2009/06/21 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
ext jquery 简单比较
2010/04/07 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
JS鼠标滚动分页效果示例
2017/07/05 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
python文件路径操作方法总结
2020/12/21 Python
党员个人整改措施
2014/10/24 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
任长霞观后感
2015/06/16 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python
css3带你实现3D转换效果
2022/02/24 HTML / CSS
redis数据一致性的实现示例
2022/03/18 Redis
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL