魔法方法:

您所在的位置:网站首页 len东西的len怎么写 魔法方法:

魔法方法:

2024-07-10 06:48| 来源: 网络整理| 查看: 265

魔法方法:__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