python需要什么包装_python学习之包装与授权

实现授权的关键点就是覆盖__getattr__()方法,在代码中包含一个对getattr()内建函数的调用。

特别调用getattr()以得到默认对象属性(数据属性或者方法)并返回它以便访问或调用。

特殊方法__getattr__()的工作方式是,当搜索一个属性时,任何局部对象首先被找到(定制的对象)。如果搜索

失败了,则__getattr__()会被调用,然后调用getattr()得到一个对象默认行为。

当引用一个属性时,解释器将试着在局部名称空间中查找那个名字,比如一个自定义的方法或局部实例属性。

如果没有在局部字典中找到,则搜索类名名称空间,以防一个类属性被访问。最后,如果两类搜索都失败了,

搜索则对原对象开始授权请求,此时,__getattr__()会被调用。

授权(也是一种包装,关键点是覆盖__getattr__方法)

基于基本类型定制自己的类型

import time

class FileHandle:

def __init__(self,filename,mode='r',encoding='utf-8'):

# self.filename=filename

self.file=open(filename,mode,encoding=encoding) #组合

self.mode=mode

self.encoding=encoding

def write(self,line):

print('------------>',line)

t=time.strftime('%Y-%m-%d %X')

self.file.write('%s %s' %(t,line))

def __getattr__(self, item):

# print(item,type(item))

# self.file.read

return getattr(self.file,item)

f1=FileHandle('a.txt','w+')

# print(f1.file)

# print(f1.__dict__)

# print('==>',f1.read) #触发__getattr__

# print(f1.write)

f1.write('1111111111111111\n')

f1.write('cpu负载过高\n')

f1.write('内存剩余不足\n')

f1.write('硬盘剩余不足\n')

# f1.seek(0)

# print('--->',f1.read())

包装

二次加工标准类型(包装继承加派生实现)

class List(list):

def append(self, p_object):

if type(p_object) is str:

# self.append(p_object) #导致无限递归

super().append(p_object)

else:

print('只能添加字符串类型')

def show_midlle(self):

mid_index=int(len(self)/2)

return self[mid_index]

# l2=list('hell oworld')

# print(l2,type(l2))

l1=List('helloworld')

# print(l1,type(l1))

# print(l1.show_midlle())

l1.append(1111111111111111111111)

l1.append('SB')

print(l1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

参加技术培训前的辅导,选得对,学得好

最近几年,每年都会有人问我培训班的事情,我也有培训班经历,在软件行业工作了十多年,每次解答培训班的咨询我都很认真,也很高兴能帮到他人。 决定通过专栏的形式解答培训班常见问题,我把专栏取名“技术培训…

[算法]浅谈求n范围以内的质数(素数)

汗颜,数学符号表达今天才学会呀-_-# 下面是百度百科对质数的定义 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。求质数的方法自然不少,但主要还是…

进入IT行业,要不要参加培训班?

IT行业介绍 考虑培训班无非是要入行,那IT行业好不好?IT行业当然好,看看培训班的数量就知道了。现在房产行业好赚钱,每个小区门口好几家中介门店,相同品牌的可能不止1家。不用去看网上的软文,也不用去问百度,看市场的反应,这是真实的反馈。培训班越来越多,课程越来越多…

python commands_Windows环境下使用python的commands.getstatusoutput

windows调用系统或其他脚本的,常用的是os.popen,次命令本身并不返回执行后的状态,无法用于后续的判断,故尝试Unix下的commands.getstatusoutput,发现在windows下并不能正常使用,如下: >>&…

Kubernetes在上汽集团云平台及AI方面的应用

2019独角兽企业重金招聘Python工程师标准>>> 帆一尚行成立于2015年,是上汽集团的全资子公司,建设有上海、南京、郑州(在建)三个数据中心,拥有超过4000台物理服务器,10PB的数据存储,总…

我的Java培训经历

此文讲述我的Java开发培训经历,来解答关心的培训费、培训节奏、就业等问题。 我在2010年参加达内Java培训,如今再回首那段时光,虽然辛苦,但很值得!(后悔参加培训班,大部分原因是冲动&#xff0…

python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

首先,先介绍两种引入模块的方法。 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 需要从某个文件中引入多个函数或变量时&#xff0c…

软件培训技术选哪个?

要培训了,培训技术怎么选? 技术需慎重选 女怕嫁错郎,男怕入错行。后悔参加培训班,因为技术没选好的占比很高。 技术没选好会有什么影响? 近的影响是就业!远的影响是发展! 对于程序员来说,技术就是立身之本,需要慎重选择! 我在《要不要参加培训班?》文章中介绍…

django安装_技术大牛详解:Django框架之环境安装

黑马程序员视频库播妞微信号:boniu236传智播客旗下互联网资讯、学习资源免费分享平台虚拟环境安装:开发中问题:如何在同一台主机中,要开发多个不同的项目,而且需要用到同一个包的不同版本?尝试分析:在开发过…

安装 Alibaba Cloud Toolkit

IntelliJ IDEA版 JetBrains 插件市场下载 Eclipse 版 Eclipse 插件市场仓库下载 (推荐)URL 地址在线安装Maven 版 在 POM 文件中依赖 PyCharm、PhpStorm、RubyMine 和 WebStorm 版 公测中官网https://toolkit.aliyun.com 交流群(钉钉) 交流群&#xff08…

软件Java前端大数据培训机构怎么选?

先看这篇文章《要不要参加培训班》。 选技术就像选另一半,那选培训机构就是选另一半的家庭。另一半家庭好与不好,与婚后幸福生活息息相关。 选培训机构的几个维度: 1.成立时间 2.专业性 3.市场普及率 成立时间 成立久的不一定好,比如北大某鸟 成立不足3年的,不要选…

高效管理论坛广告贴的小窍门

欢迎访问网易云社区,了解更多网易技术产品运营经验。这里提供一个关于如何管理论坛广告贴的深度视角。一般的论坛在发展初期,用户自发产生的内容不多,每一条数据都弥足珍贵,因此几乎不会考虑到反垃圾需求。随着产品规模的扩大&…

Chrome浏览器多开,亲测有效

原理 指定不同的用户目录,就可以实现多开。即:"--user-data-dir" 指定不同的目录。 操作 新建用户目录文件夹 要开几个,就新建几个,文件夹名随意。 复制chrome快捷方式 修改目标路径 每个快捷方式,修改…

计算机技术与软件专业技术资格(水平)考试 全国各省市成绩查询

大家好,我是51CTO学院的文慧,目前收到很多参加软考考试的学生针对考试成绩查询的问题,无法一一帮助到大家,故开此博客,希望可以帮助到大家。 2018年下半年软考合格标准是多少?根据近几年软考合格标准来看&a…

培训时常犯的学习误区与应对方法

和在学校里上课一样,同一位老师教,同班同学成绩不同。同学之间的资质都是差不多的,因学习方法不同,学习心态不同,课后努力程度不同导致的成绩差异。 本文介绍下培训时容易犯的学习误区和误区的应对方法。 误区1 不懂不明白的地方,非要打破铁锅问到底。 应对方法 培训…

julia有没有希望超越python_未来5-10年,Julia会替代Python成为量化投资热门语言吗?...

今年上过一个quantative programming的课程,去年教学用的语言还是python,加速的方法用的是jit即时编译来提高编程效率,今年课程的设计就改成Julia了。 因为自己从2016年起数据研究用的都是python,所以最开始使用Julia的时候并不习…

常见的三种撞库方法

欢迎访问网易云社区,了解更多网易技术产品运营经验。 在安全领域向来是先知道如何攻,其次才是防。在介绍如何防范网站被黑客扫描撞库之前,先简单介绍一下什么是撞库:撞库是黑客通过收集互联网已泄露的用户和密码信息,生…

超越培训班同学的独门绝技

​​​​​​​本文讲3个独门绝技,十多年苦练多得,只传有缘人。 ​​​​​​​ 不订阅,就是不给看 绝技1 -----权益保护线----- -----权益保护线----- -----权益保护线----- -----权益保护线----- -----权益保护线----- 写CSDN博文 CSDN上有不少参加培训班的…

python逐个读取字符_玩转python之字符串逐个字符或逐词反转

众所周知,python中的字符串是无法改变的,反转一个字符串自然要创建一个拷贝;最简单的方法,当然是步长为“-1”的切片: result astring[::-1] 如果要是按单词来反转,需要三步完成:字符串--->…

WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数

原文:WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数正则&#xff1a;^(0\.\d|[1-9][0-9]|1)$ TextBox绑定正则验证 <TextBox x:Name"txb" MaxLength"6" Margin"1 0 0 0" Width"40" > <TextBox.Text> …