随笔分类 -  python魔术方法

摘要:前言 迭代器就是重复地做一些事情,可以简单的理解为循环 实现了__iter__方法的对象是可迭代的 实现了next()方法的对象是迭代器 要想让一个迭代器工作,至少要实现__iter__方法和next方法 代码解释 class MyRange: def __init__(self, end=3): 阅读全文
posted @ 2022-05-05 23:22 大切切 阅读(35) 评论(0) 推荐(0) 编辑
摘要:前言 contains(self,x)函数,可判断我们输入的数据是否在Class里.参数x就是我们传入的数据. 代码解释 class Graph(): def __init__(self): self.items = {'a':1,'b':2,'c':3} def __contains__(self 阅读全文
posted @ 2022-05-05 22:37 大切切 阅读(35) 评论(0) 推荐(0) 编辑
摘要:前言 __ delitem__(self,key)这个方法在对对象的组成部分使用__del__语句的时候被调用,应删除与key相关联的值。同样,仅当对象可变的时候,才需要实现这个方法。 代码解释 class Tag: def __init__(self): self.change={'python' 阅读全文
posted @ 2022-05-05 22:35 大切切 阅读(68) 评论(0) 推荐(0) 编辑
摘要:前言 __ setitem__(self,key,value):该方法应该按一定的方式存储和key相关的value。在设置类实例属性时自动调用的。 代码解释 class A: def __init__(self): self['B']='BB' self['D']='DD' def __setite 阅读全文
posted @ 2022-05-05 22:33 大切切 阅读(114) 评论(0) 推荐(0) 编辑
摘要:![](https://img2022.cnblogs.com/blog/2788478/202205/2788478-20220505222243456-738648659.png) 阅读全文
posted @ 2022-05-05 22:23 大切切 阅读(31) 评论(0) 推荐(0) 编辑
摘要:前言 __ getitem__主要作用是可以让对象实现迭代功能。 代码解释 class DataBase: '''Python 3 中的类''' def __init__(self, id, address): '''初始化方法''' self.d = {'id': id, 'address': a 阅读全文
posted @ 2022-05-05 22:09 大切切 阅读(22) 评论(0) 推荐(0) 编辑
摘要:前言 __repr__和__str__功能很相似,都是用来改变实例化类的对象返回显示内容 代码解释 class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> 阅读全文
posted @ 2022-05-05 21:54 大切切 阅读(22) 评论(0) 推荐(0) 编辑
摘要:前言 直接打印对象的实现方法,__ str__是被print函数调用的。打印一个实例化对象时,打印的其实时一个对象的地址。而通过__str__()函数就可以帮助我们打印对象中具体的属性值,或者你想得到的东西。 在Python中调用print()打印实例化对象时会调用__str__()。如果__str 阅读全文
posted @ 2022-05-05 21:43 大切切 阅读(56) 评论(0) 推荐(0) 编辑
摘要:前言 repr方法用于转化为供解释器读取的形式,实例化一个类时,返回的类对象,可读性差,默认格式为“类名+object at+内存地址” 代码解释 class CLanguage: pass clangs = CLanguage() print(clangs) ### 程序运行结果为: <__mai 阅读全文
posted @ 2022-05-05 21:28 大切切 阅读(26) 评论(0) 推荐(0) 编辑
摘要:#前言 该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。 作用:为了将类的实例对象变为可调用对象。 代码解释 class CLanguage: # 定义__call__方法 def __call__(self,name,add): pri 阅读全文
posted @ 2022-05-05 21:27 大切切 阅读(25) 评论(0) 推荐(0) 编辑
摘要:前言 我们在使用类的时候,常规做法是会先实例化一个该类的对象,然后可以为此实例对象动态的添加实例方法或者实例属性 __slots__属性就相当于是一个白名单,只有在白名单中才可以添加 需要注意 对于类,Python允许为类动态地添加这三种方法(实例方法、静态方法和类方法) 对于实例对象,则Pytho 阅读全文
posted @ 2022-05-05 02:07 大切切 阅读(49) 评论(0) 推荐(0) 编辑
摘要:三个特殊方法 __set __(self, obj, type=None):在设置属性时将调用这一方法; __get __(self, obj, value):在读取属性时将调用这一方法; __delete __(self, obj):对属性调用 del 时将调用这一方法。 class Reveal 阅读全文
posted @ 2022-05-03 11:52 大切切 阅读(27) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示