简单介绍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入门教程之if语句的用法
May 14 Python
python 获取网页编码方式实现代码
Mar 11 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
你真的了解Python的random模块吗?
Dec 12 Python
Python内存读写操作示例
Jul 18 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python语言元素知识点详解
May 15 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
Oct 14 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
Python命名空间namespace及作用域原理解析
Jun 05 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创建动态图像
2006/10/09 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
php DES加密算法实例分析
2019/09/18 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python三级目录展示的实现方法
2016/09/28 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
python安装scipy的方法步骤
2019/06/26 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
竞选班长演讲稿
2013/12/30 职场文书
商务考察邀请函范文
2014/01/21 职场文书
护士在校生自荐信
2014/02/01 职场文书
通讯稿范文
2015/07/22 职场文书
2015初中团委工作总结
2015/07/28 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python