简单介绍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 Dataframe 指定多列去重、求差集的方法
Jul 10 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python for和else语句趣谈
Jul 02 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
python用requests实现http请求代码实例
Oct 31 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
Mar 05 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
python实现程序重启和系统重启方式
Apr 16 Python
Python爬虫之App爬虫视频下载的实现
Dec 08 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 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编程风格规范分享
2014/01/15 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
jQuery的三种$()
2009/12/30 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
机械专业毕业生自荐信
2013/11/02 职场文书
医学院学生的自我评价分享
2013/11/19 职场文书
大学生职业生涯规划书模版
2013/12/30 职场文书
五分钟演讲稿
2014/04/30 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
通知的格式范文
2015/04/27 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
HTML基本元素标签介绍
2022/02/28 HTML / CSS