简单介绍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多线程扫描端口代码示例
Feb 09 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
对python中if语句的真假判断实例详解
Feb 18 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
python自然语言处理之字典树知识总结
Apr 25 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中get_defined_constants函数用法实例分析
2015/05/12 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
Python 串口通信的实现
2020/09/29 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
HTML5应用之文件上传
2016/12/30 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
财政专业求职信范文
2014/02/19 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
感谢师恩主题班会
2015/08/17 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
一文弄懂MySQL索引创建原则
2022/02/28 MySQL