python类封装成dl_第7.9节 案例详解:Python类封装
上节介绍了Python中类的封装机制,本节结合一个具体例子进行详细说明。
我们定义一个Person类,其内部有姓名、年龄和类型三个实例变量,并定义了相关的存取方法:
class Person():
def __type(self):
if self._age<16: return '青少年'
elif self._age<60: return '中年'
else:return '老年'
def __init__(self,name):self.name,_age,__persontype=name,0,'未知'
def get_name(self,name):return self.name
def set_age(self,age):
self._age=age
self.__persontype=self.__type()
def get_age(self,age):return self._age
def get_type(self):return self.__persontype
注意,其中实例变量_age年龄用的是一个下划线开头,实例变量__persontype类型是双下划线开头。定义完成后,我们执行如下代码定义两个人的实例,并设置年龄:
p1=Person('张三')
p2=Person('李莎')
p1.set_age(36)
p2.set_age(12)
同时沿用前面章节定义的函数dirp以去掉属性中的双下划线开头的变量和方法:
def dirp(iter): return [i for i in dir(iter) if not i.startswith('__')]
执行:dirp(p1)
输出结果:['_Person__persontype', '_Person__type', '_age', 'get_age', 'get_name', 'get_type', 'name', 'set_age']
可以看到:__persontype属性被变为了_Person__persontype,__type方法被变为了_Person__type,同时执行访问原属性的实例变量会报错。具体执行截图如下:
本节结合具体案例了Python的封装机制,相信大家能完全理解,并在开发时都能遵守这些约定。
老猿Python(https://blog.csdn.net/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
欢迎大家批评指正,谢谢大家关注!
python类封装成dl_第7.9节 案例详解:Python类封装相关推荐
- Python中常见的__init__.py是什么意思?详解Python import的方式和原理
Python中常见的__init__.py是什么意思?详解Python import的方式和原理 1 什么是模块化编程? 2 __init__.py文件的作用 3 Python如何import第三方库 ...
- python代码案例详解-第7.20节 案例详解:Python抽象类之真实子类
第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义了图形 ...
- python定义类方法用来计算整数的减法运算_详解python的二元算术运算,为什么说减法只是语法糖?...
原标题:详解python的二元算术运算,为什么说减法只是语法糖? 原题 | Unravelling binary arithmetic operations in Python 作者 | Brett ...
- python 正则表达式 断言 不定长表达式_【教程】详解Python正则表达式之: (?!…) negative lookahead assertion 前向否定匹配 /前向否定断言...
Python 2.7的官网文档中的解释是:(?!...)Matches if ... doesn't match next. This is a negative lookahead assertio ...
- python代码案例详解-Python运算符重载详解及实例代码
Python运算符重载 Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似又有些不同.鉴于它的特殊性,今天就来讨论一下Python运算符重载. Python语言本身提供了 ...
- python编程入门与案例详解-Python爬虫天气预报实例详解(小白入门)
本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 这次要爬的站点是这个:http://www.weather.com.cn/forecast/ 要求是把你所在城市过去一年的历史数据爬 ...
- python爬虫代码实例源码_python爬虫及案例详解(附代码)
安装三大库 1.requests 2.BeautifulSoup 3.lxml 有的网站做了相应的反爬虫,不能用普通方法爬取网站数据. 这里我用python爬取了几个网站的数据,分别存入csv文件,m ...
- 基于python的数据建模与分析案例_基于案例详解Python数据分析与机器学习
课程概述: 使用数据领域最主流语言Python及其分析与建模库作为核心武器.对于机器学习经典算法给出完整的原理推导并基于实例进行讲解,基于案例演示如何应用机器学习算法解决实际问题. 课程特色: 通俗易 ...
- 第7.11节 案例详解:Python类实例变量
上节老猿介绍了实例变量的访问方法,本节结合一个具体案例详细介绍实例变量访问. 本节定义一个Vehicle类(车),它有三个实例变量self.wheelcount(轮子数).self.power(动力) ...
- python代码案例详解-Python实现电视里的5毛特效实例代码详解
前段时间接触了一个批量抠图的模型库,而后在一些视频中找到灵感,觉得应该可以通过抠图的方式,给视频换一个不同的场景,于是就有了今天的文章. 我们先看看能实现什么效果,先来个正常版的,先看看原场景: 下面 ...
最新文章
- windows 7装IIS
- 【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )
- 寻找最大的K个数,Top K问题的堆实现
- Struts2--DomainModel接收参数---使用广泛!!!
- 基于Xml 的IOC 容器-分配解析策略
- ACCESS SQL语法参考
- jvm破坏双亲委派_破坏JVM
- java接口作用和好处,持续更新大厂面试笔试题
- python3输入输出_Python3 输入和输出
- 网站设计软件linux,ubuntu下的网页设计 网页制作软件工具.pdf
- 在asp.net中使用线程
- 《Linux就该这么学》正式版电子书发布!
- 超链接显示网站 A,访问后进入网站 B
- matlab画图——semilogy函数介绍
- 【剑拔峨眉 团队裂变】蜜拓蜜教育高端特训营第二期即将上线
- 泛泰 A870 4.1.2 刷第三方专用Recovery合集
- linux中文件颜色,蓝色,白色等各自代表的含义
- 视频直播中的心形漂浮效果
- 强制退出程序的六种方法!
- 中国科研人员开发出“蚁群”微型机器人
热门文章
- 使用Water-Scrum-Fall交付软件
- sublime每次打开时都提示升级,怎么取消这个弹出框?
- JSPServlet相关
- php数据回显是什么意思,关于mysql:php脚本回显部分php而不是什么意图
- 修改docx表格_文件杂乱怎么办?批量整理修改文件名我就用它
- atoi函数_linux网络编程之POSIX 消息队列 和 系列函数
- dedecms联动筛选_织梦dedecms图片联动筛选教程
- java 睡眠_Java 线程和多线程执行过程分析
- 电脑同时安装python2和3_电脑上同时安装Python2和Python3
- SQL语句:查询多表更新数据