__getitem__的作用
__getitem__本质上将一个对象具有字典功能
案例一:
class Text__getitem__():def __init__(self):passdef __len__(self):return 3def __getitem__(self, key):if key.startswith("abc"):return "abc"elif key.startswith("bcd"):return "bcd"else:return "nonono"
obj = Text__getitem__()
print(obj["abc"])输出:abc
案例二:
class Text__getitem__():def __init__(self):passdef __len__(self):return 3def __getitem__(self, key):if key.startswith("abc"):return "abc"elif key.startswith("bcd"):return "bcd"else:return "nonono"
obj = Text__getitem__()
print(obj["abc"])for k, v in enumerate(obj):print(k, v)输出:
abc
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-90-24e3e74a5609> in <module>14 print(obj["abc"])15
---> 16 for k, v in enumerate(obj):17 print(k, v)<ipython-input-90-24e3e74a5609> in __getitem__(self, key)5 return 36 def __getitem__(self, key):
----> 7 if key.startswith("abc"):8 return "abc"9 elif key.startswith("bcd"):AttributeError: 'int' object has no attribute 'startswith'
案例三:
class Text__getitem__():def __init__(self):passdef __len__(self):return 3def __getitem__(self, key):if key < 0 or key >= 3: raise IndexErrorif key == 1:return "abc"elif key == 2:return "bcd"else:return "nonono"
obj = Text__getitem__()
for k, v in enumerate(obj):print(k, v)输出:
0 nonono
1 abc
2 bcd这两句代码非常重要,否则就会key值就会一直循环下去。
if key < 0 or key >= 3: raise IndexError
案例四、
class Text__getitem__():def __init__(self):passdef __len__(self):return 3def __getitem__(self, key):if key == 1:return "abc"elif key == 2:return "bcd"else:return "nonono"
obj = Text__getitem__()
for k, v in enumerate(obj):print(k, v)输出:
0 nonono
1 abc
2 bcd
3 nonono
4 nonono
5 nonono
6 nonono
7 nonono
8 nonono
9 nonono
10 nonono
11 nonono
12 nonono
13 nonono
14 nonono
15 nonono
16 nonono
17 nonono
18 nonono
19 nonono
20 nonono
21 nonono
……
__getitem__的作用相关推荐
- python 类中的 __getitem__方法
经常会遇到python类中遇到一些特殊的方法,最常见的就是__ini__方法,想必大家都遇到过,今天来谈谈另外一种非常好用的类方法--__getitem__ 来点干货, __getitem__的作用是 ...
- 【python 10】python 魔术方法
文章目录 一.`__getitem__` 获取属性 二.`__setitem__` 设置属性 三.`__delitem__` 删除属性 四.`__len__` 求长度 五.`__call__` 将类变 ...
- 计算机视觉-自定义对象检测器
1.模板匹配 运行指令:python template_matching.py --source 3.jpg --template 2.jpg import argparse import cv2ap ...
- torch中Dataset的构造与解读
torch中Dataset的构造与解读 Dataset的构造 要自定义自己的数据集,首先需要继承Dataset(torch.utils.data.Dataset)类. 继承Dataset类之后,必须重 ...
- 动手学深度学习第一次打卡
今年才开始接触深度学习,基本上是小白的状态,希望能利用疫情放假的这些日子好好学习一下深度学习.第一次打卡包括Task01和Task02两部分,Task01的学习任务又分为线性回归.Softmax与分类 ...
- 【Python基础】关于Python的前后、单双下划线作用
python的各种下划线 在Python中,可能最常见的就是各种常量.变量.函数.方法前后添加的那些下划线了.有前面加的.后面加的,加一个的,加两个的,看到头晕.那么,你对这些知识都掌握了吗 ?让我们 ...
- pytorch中的collate_fn 是什么作用
对于目标检测或者目标分类来说,都会在dataloader加载数据时定义一个自己的collate_fn,那collate_fn的作用到底是什么作用那?(主要参考这里) 当我们在自定义自己的dataset ...
- 关于Python的前后、单双下划线作用,看完这篇文章,吊打面试官!
Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨王翔丨 来源丨清风Python(ID:Bree ...
- 大学计算机python编程的函数及作用总结_【转】python 内置函数总结(大部分)...
python 内置函数大讲堂 python全栈开发,内置函数 1.内置函数 python的内置函数截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python ...
最新文章
- nodejs在cmd中运行js_如何在nodejs里调用执行系统命令
- linux mysql 统一字符编码
- PowerDesigner使用教程 —— 概念数据模型详解
- NoSQL开篇——为什么要使用NoSQL
- 翻车实录之Nature Medicine新冠单细胞文献|附全代码
- erp系统是什么版本
- QQ浏览器下拉词推广是什么?
- pmbok第六版_英文版(带目录).pdf_书籍分享 | 高等数学(第六版)含解析~同济大学...
- Jvisualvm监控远程SpringBoot项目
- 省份简称匹配并分组统计
- 5G网络规划解决方案
- 应届生求职应聘简历PPT模板
- 替换字符串中的通配符
- Hbase——练习3
- 家用计算机硬盘一般价格,家用电脑使用企业级硬盘的效果会很好吗?
- 织梦 PHP 字段 调用,织梦怎么调用自定义字段
- 21精美ContactPages联系我们页面设计欣赏
- 485总线最大能挂载多少个节点
- python 求解包含两个未知数的方程
- 如何形象理解多方安全计算、去中心化?
热门文章
- Python中用dict统计列表中元素出现的次数
- Python列表的常用方法
- Python 字符串格式化输出方式
- python中的简单while循环及逻辑运算符
- 用Python学分析 - 单因素方差分析
- ecshop 后台添加评论_如何提升外卖营业额?评论回复不可忽视
- VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8)
- OpenCV:在imshow() 之前使用namedWindow() 的必要性讨论?
- C语言怎么开辟超大内存?(malloc)
- Coprime Sequence 思维 gcd 删一个数