RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
python函数拦截,python阻塞函数

【python】魔法方法 :__getitem__ 、 __len__、__setitem__等的使用

在Python中,如果我们想实现创建类似于序列和映射的类(可以迭代以及通过[下标]返回元素),可以通过重写魔法方法 __getitem__、__setitem__、__delitem__、__len__ 方法去模拟。

网站建设、做网站介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

__getitem__(self,key): 返回键对应的值。

__setitem__(self,key,value): 设置给定键的值

__delitem__(self,key): 删除给定键对应的元素。

__len__(): 返回元素的数量

【注释】只要实现了 __getitem__ 和 __len__ 方法,就会被认为是序列。

这些魔术方法的原理就是:当我们对类的属性item进行下标的操作时,首先会被 __getitem__()、__setitem__()、__delitem__() 拦截,从而执行我们在方法中设定的操作,如赋值,修改内容,删除内容等等。

这个方法应该以与键相关联的方式存储值,以便之后能够使用 __setitem__ 来获取。当然,这个对象可变时才需要实现这个方法。

举个栗子:

定义一副扑克牌(不包括大小王),对牌进行洗牌,然后发牌。

Output:

【注意】 :我们会发现output中,输出了: slice(1, 3, None) ,下面给出解释。

语法:

参数说明:

slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。

举两个栗子来看看:

Output:

切片原理

output

(程序员必会的 hhhhh.....)

看看slice在python3.7中是怎么描述的:

如何拦截http请求 python 实现

1 首先安装requests这个模块,方法是 输入pip install requests。当然你要装好pip这个包管理器。 2 然后 import requests url = " " # 这里是你的url your_param = {'Refer':"sina_index"} # 这里是你要发送的请求参数!

python 怎么拦截封包

屏蔽单句时使用# 注释此语句,屏蔽多句时,可以使用三引号把多行语句引起来

python getattribute、get、getattr、getitem等用法

__getattribute__

__getattribute__是属性访问拦截器,就是当类的属性被访问时,会自动调用类的__getattribute__方法。

参考代码:

代码执行过程中,当调用实例对象attribute的name属性时,不会直接打印,而是把name的值作为实参传进__getattribute__方法中,经过一系列操作后,再把name的值返回。

python中只要定义了继承object的类,就默认存在属性拦截器,只不过是拦截后没有进行任何操作,而是直接返回。

我们可以自己改写__getattribute__方法来实现相关功能,比如查看权限、打印log日志等。

getattr、hasattr、setattr

对象属性的判断。

参考代码:

__getattr__、__setattr__、__delattr__

类支持 . 操作来访问属性;定制功能:耗时、日志等等。

参考代码:

__getitem__、__setitem__、__delitem__

类支持通过[]来访问属性

参考代码:

__get__、__set__、__delete__

参考代码:

参考文档:


名称栏目:python函数拦截,python阻塞函数
网页路径:http://scyingshan.cn/article/hdhchc.html