魔法方法: |
您所在的位置:网站首页 › len东西的len怎么写 › 魔法方法: |
魔法方法:__getitem__()和__len__()
1.魔法函数简介: 在Python中,如果想实现创建类似于序列和映射的类(可以迭代以及通过[下标]返回元素),可以通过重写魔法方法的方式去实现。常见的魔法方法包括__getitem__()、__setitem__()、__delitem__()、__len__(),它们的函数功能为: 1)__getitem__(self,key):返回键对应的值; 2)__len__():返回元素的数量; 3)__delitem__(self,key):删除给定键对应的元素; 4)__setitem__(self,key,value):设置给定键的值。 其中只要实现了__getitem__和 __len__方法就会被认为是序列。 __len__()函数可以用来查看对象长度; __getitem__(self,key)函数可以对对象进行[]操作如切片、索引、iterd等,如果在类中定义了__getitem__()方法,那么它的实例对象(假设为P)就可以以P[key]形式取值,当实例对象做P[key]运算时,就会调用类中的__getitem__()方法。当对类的属性进行下标的操作时,首先会被__getitem__()、__setitem__()、__delitem__()拦截,从而执行我们在方法中设定的操作,如赋值,修改内容,删除内容等。 2.Dataset类中的__getitem__和 __len__方法: torch.utils.data.Dataset是PyTorch中用来表示数据集的抽象类,Dataset是一个包装类,用来将数据包装为Dataset类,然后传入DataLoader中从而使DataLoader类更加快捷的对数据进行操作。当处理自定义的数据集的时候必须继承Dataset,然后重写 __len__()和__getitem__()函数。 1)__len__(): 使得len(dataset)返回数据集的大小; 2)__getitem__():使得支持dataset[i]能够返回第i个数据样本这样的下标操作,在__getitem__()函数中完成图片的读取工作可以减小内存开销,只要在需要用到的时候才将图片读入。 3.参考博客: 1)https://www.jianshu.com/p/cca8e8834066 2)https://zhuanlan.zhihu.com/p/87786297 3)https://www.jianshu.com/p/6e22d21c84be |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |