简单介绍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的内存泄漏及gc模块的使用分析
Jul 16 Python
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
简单介绍Python中的floor()方法
May 15 Python
利用python批量检查网站的可用性
Sep 09 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
如何解决cmd运行python提示不是内部命令
Jul 01 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
python如何调用百度识图api
Sep 29 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
Python远程linux执行命令实现
Nov 11 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函数常用用法小结
2010/02/08 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
PHP获取文件行数的方法
2015/06/10 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
详解python的几种标准输出重定向方式
2016/08/15 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
jupyter notebook 多行输出实例
2020/04/09 Python
怎么快速自学python
2020/06/22 Python
python regex库实例用法总结
2021/01/03 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
财经学院自荐信范文
2014/02/02 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
总经理助理岗位职责
2015/01/31 职场文书
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript