简单介绍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 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
Python的时间模块datetime详解
Apr 17 Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
python制作图片缩略图
Apr 30 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python os.fork() 循环输出方法
Aug 08 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
Oct 15 Python
python b站视频下载的五种版本
May 27 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中取得image按钮传递的name值
2006/10/09 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
js直接编辑当前cookie的脚本
2008/09/14 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
js 颜色选择插件
2017/01/23 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
在Python中编写数据库模块的教程
2015/04/29 Python
python和bash统计CPU利用率的方法
2015/07/10 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
python装饰器常见使用方法分析
2019/06/26 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
文秘求职信范文
2014/04/10 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
工作后的感想
2015/08/07 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
Python 中的Sympy详细使用
2021/08/07 Python