简单介绍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切换pip安装源的方法详解
Nov 18 Python
Python多线程threading和multiprocessing模块实例解析
Jan 29 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Python中的枚举类型示例介绍
Jan 09 Python
PyQt5组件读取参数的实例
Jun 25 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
Python关于反射的实例代码分享
Feb 20 Python
OpenCV-Python实现油画效果的实例
Jun 08 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python字符串,数值计算
2016/10/05 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
优秀公益广告词大全
2014/03/19 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
2015年读书月活动总结
2015/03/26 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript