易语言封装python类_第7.9节 案例详解:Python类封装

本文通过Person类的定义和使用,详细解释了Python中的类封装机制。包括实例变量的命名规则,如单下划线和双下划线开头的变量,以及如何通过存取方法操作这些变量。通过具体代码示例展示了属性访问的变化,并提供了dirp函数过滤双下划线开头的属性。案例帮助读者深入理解Python封装的实现和应用。
摘要由CSDN通过智能技术生成

上节介绍了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窗口组件 易友专属,毕竟易语言组件操作功能齐全也方便 可参考老版本介绍:https://bbs.125.la/forum.php?mod=viewthreadtid=14463987 2.191103 版本更新: 1.增加组件,组合框,超级列表框代码生 2.增加功能,支持生TTK组件代码(易语言内的windows通用组件库6.0版) 3.功能增加,增加新事件绑定 鼠标左键单击用法: 打开源码,在启动窗口直接设计窗口组件,已支持 标签,组合框,编辑框,按钮,单选框,多选框,超级列表框 组件的创建跟事件绑定及部分属性代码生,需要其他属性的可以根据源码自行添加或评论留言。窗口设计完后按F5调试程序,窗口出现的时候代码也就自动生好了,直接去Python里粘贴即可调试 Python模块EP.py 已封装200+常用命令 函数命名跟各种操作已尽量仿照精易模块 ,用起来还是熟悉的味道。 模块内已有函数(模块内需要安装的第三方库都已备注) 已有命令 返回返回调试输出到文本到整数到数值对象到文本到元组到列表到字典到字到字数组序列_是否都为真序列_是否有真字数组_清空字数组_顺序反转取数据型取数据长度集合文本_取出现次数文本_是否指定文本结尾文本_是否指定文本开头文本_TAB转空格文本_寻找文本文本_倒找文本文本_寻找文本index文本_倒找文本index文本_是否全十进制数字U文本_是否全数字字母文本_是否全数字文本_是否全数字U文本_是否全空格文本_是否标题化文本_是否全小写文本_是否全大写文本_是否全字母文本_标题化文本_首字母转大写文本_到小写文本_到大写文本_大小写字符到小写文本_大小写翻转文本_拼接文本_居中文本_左对齐文本_右对齐文本_右对齐0文本_删左边全部空格文本_删右边全部空格文本_删首尾指定字符文本_三元分割_左文本_三元分割_右文本_子文本替换文本_分割文本文本_换行分割文本_生翻译表文本_转换字符文本_按键名转键值文本_键值转按键名文本_取出中间文本文本_取文本左边文本_取文本右边文本_取左边文本_取右边文本_取字符长度文本_取随机IP文本_取随机邮箱文本_取随机手机号文本_取随机字母文本_取随机数字文本_取随机字符文本_取随机姓氏文本_取随机汉字文本_取随机范围数字文本_到时间_datetime文本_取中间_批量文本_拼音转换数值_求次方数值_四舍五入数值_取绝对值数值_取上入整数数值_取下入整数数值_取最大数数值_取最小数字典_取值并删除字典_取指定键值字典_清空字典_拷贝字典_生字典_转列表字典_取全部键字典_取全部值字典_取出并删除最后键值字典_取值添加列表_转字典列表_加入员列表_插入员列表_取出现次数列表_加入新列表列表_查找员位置列表_取值并删除列表_删除指定值列表_倒序排列列表_大小排序时间_取指定格式时间时间_亚马逊操作时间时间_取启动时间时间_取现行时间time时间_取日期时间_取某年某月日历时间_取某年日历时间_是否为闰年时间_指定范围闰年总数时间_取某月天数时间_取某月一号星期几时间_取某天星期几时间_取现行时间datetime时间_取随机时间戳时间_格式化时间_文本转datetime时间时间_datetime时间转文本时间_增减datetime时间_取上月最后一天时间_取时间间隔时间_时间转时间戳时间_时间戳转时间时间_取现行时间戳队列_创建队列队列_加入员队列_取出员队列_取队列员数队列_清空队列队列_是否为空队列_是否已满正则_匹配编码_编码编码_解码编码_UTF8编码编码_UTF8解码编码_GBK编码编码_GBK解码编码_URL编码编码_URL解码编码_ANSI到USC2编码_USC2到ANSI编码_BASE64编码编码_BASE64解码加密_MD5加密_SHA加密_SHA3加密_HmacSHA256加密_CRC32JS_调试JS_加载JS_运行GZIP_压缩GZIP_解压文件_取运行目录文件_更改当前工作目录文件_更改当前进程目录文件_遍历指定路径文件文件_遍历指定路径所有子目录文件_创建单层目录文件_创建多层目录文件_删除文件文件_删除文件2文件_删除单层空目录文件_删除多层空目录文件_获取访问修改时间文件_设置访问修改时间文件_重命名文件_修改权限文件_是否为绝对路径文件_是否为目录文件_是否为文件文件_是否存在文件_取文件大小文件_取最近访问时间文件_取创建时间文件_取修改时间文件_取文件目录文件_取路径文件名文件_文件扩展名分割文件_目录文件名分割文件_创建文件文件_检测权限文件_写入文件文件_读取文件文件_读取某行数据_排列数据_组合数据_排列组合进制_十到二进制_十到八进制_十到十六进制_二到十进制_八到十
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值