简单介绍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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
python:接口间数据传递与调用方法
Dec 17 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
Python匿名函数及应用示例
Apr 09 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
django formset实现数据表的批量操作的示例代码
Dec 06 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 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
php随机生成数字字母组合的方法
2015/03/18 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
js中url对象化管理分析
2017/12/29 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
Element Dialog对话框的使用示例
2020/07/26 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python 私有函数的实例详解
2017/09/11 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python连接mysql方法及常用参数
2020/09/01 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
python字符串的多行输出的实例详解
2021/06/08 Python