简单介绍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中关键字is与==的区别简述
Jul 31 Python
python中使用mysql数据库详细介绍
Mar 27 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
python中update的基本使用方法详解
Jul 17 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 Python
总结Python常用的魔法方法
May 25 Python
Matlab如何实现矩阵复制扩充
Jun 02 Python
Django实现drf搜索过滤和排序过滤
Jun 21 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
php实现图片缩放功能类
2013/12/18 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
创业计划实施的7大步骤
2014/02/05 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
股权投资意向书
2014/04/01 职场文书
刊首寄语大全
2014/04/11 职场文书
答谢会策划方案
2014/05/12 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js