简单介绍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绘制数据的瀑布图的教程
Apr 07 Python
Python实现批量读取word中表格信息的方法
Jul 30 Python
Python实现各种排序算法的代码示例总结
Dec 11 Python
django 发送手机验证码的示例代码
Apr 25 Python
使用python存储网页上的图片实例
May 22 Python
python检测IP地址变化并触发事件
Dec 26 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
python中sympy库求常微分方程的用法
Apr 28 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 Python
python实现简易名片管理系统
Apr 11 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
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
详解javascript void(0)
2020/07/13 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
Python中处理时间的几种方法小结
2015/04/09 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python计算文本文件行数的方法
2015/07/06 Python
python实现web方式logview的方法
2015/08/10 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
django反向解析和正向解析的方式
2018/06/05 Python
python之拟合的实现
2019/07/19 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
python对execl 处理操作代码
2020/06/22 Python
详解python对象之间的交互
2020/09/29 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
sort命令的作用和用法
2012/11/04 面试题
旷课检讨书大全
2014/01/21 职场文书
双语教学实施方案
2014/03/23 职场文书
单位考核聘任报告
2015/03/02 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang