python--getitme\setitem 支持索引与分片
1、想要自己定义的python对象支持索引与分片操作就要重载__getitem__\__setitem__这两个方法。
2、__getitme__(self,index)
这里的index参数可能类型有两种int,slice。当它是int类型时对应索引操作,当它是slice时对应分片操作。
3、__setitem__(self,index,value)
index意义同上,value代表着要设置成的值。
例子:
#!C:\Install\Python27\python
#!coding:utf-8 class MyList(object):
def __init__(self):
self.data=[1,2,3,4,5,6,7,8]
def __getitem__(self,index):
if isinstance(index,slice):
#分片操作
return [1,2,3]
else:
#索引操作
return 666 if __name__=="__main__":
ml = MyList()
#由于分片逻辑已经写死了,所以传一个怎样的slice对象都没事
print ml[100:100:100]
python--getitme\setitem 支持索引与分片的更多相关文章
- 转载:索引与分片 plus
[Python笔记]序列(一)索引.分片 Python包含6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象.这些序列支持通用的操作: 索引 索引是从0开始 ...
- Python3基础 set 自动将重复合并掉 不支持索引
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 打造 html5 文件上传组件,实现进度显示及拖拽上传,支持秒传+分片上传+断点续传,兼容IE6+及其它标准浏览器
老早就注册了博客园帐号,昨天才发现,连博客都没开,Github也是一样,深觉惭愧,赶紧潜个水压压惊`(*∩_∩*)′ 言归正传.大概许多人都会用到文件上传的功能,上传的库貌似也不少,比如(jQuery ...
- 【原创】C++链表如何像Python List一样支持多种数据类型
用过Python的码友都知道,Python中List支持多种数据类型,如下面代码所示链表li内的数据类型可以是整数,同时也可以是字符串,当然也可以是其他数据类型. 1: >>> li ...
- 阿里云 rds python sdk不支持python3处理
阿里云文档中心的python版本aliyun-python-sdk-rds不支持python3处理 问题:默认情况下文档中心的python版本只支持python2,不兼容python3版本 需要稍微修 ...
- python使用数组作为索引遍历数组
python使用数组作为索引遍历数组 觉得有用的话,欢迎一起讨论相互学习~Follow Me python使用数组作为索引遍历数组 import numpy as np a=np.arange(0,5 ...
- OceanBase支持索引查询啦!
OceanBase支持索引后,上面的例子中用索引的查询速度是不用索引查询速度的40倍! 相关阅读 OceanBase简史 OceanBase Join操作 OceanBase内部表 OceanBase ...
- elasticsearch 集群、节点、索引、分片、副本概念
原文链接: https://www.jianshu.com/p/297e13045605 集群(cluster): 由一个或多个节点组成, 并通过集群名称与其他集群进行区分 节点(node): 单个 ...
- python小白之数组索引
索引 numpy中的数组索引形式和Python是一致的.如: np.arange(10) print x[2] #单个元素,从前往后正向索引.注意下标是从0开始的. print x[-2] #从后 ...
随机推荐
- dict.get('key')和dict['key']的区别
dict['key']只能获取存在的值,如果不存在会触发KeyError dict.get('key', default=None)如果不存在,返回一个默认值
- encoding(hdoj1020)
Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following ...
- iOS中判断设备系统版本
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 对话 UNIX: 关于 inode
http://www.ibm.com/developerworks/cn/aix/library/au-speakingunix14/ WMI http://wiki.hudson-ci.org/di ...
- C语言的本质(18)——函数的可变参数
一般而言,在设计函数时会遇到许多数学和逻辑操作,是需要一些可变功能.例如,计算数字串的总和.字符串的联接或其它操作过程. 实现一个函数,要求在函数中计算传入的所有参数之和,并输出到屏幕上.这个函数实现 ...
- NoSql 精粹导读图
- 使用httpwatch抓包
httpwatch抓包工具是MS的ie自带的一个插件. 但是千里之行始于足下,所以先来利用httpwatch抓一些包来分析分析. 打开IE,快捷键shift+F2打开httpwatch. 如下图: 本 ...
- 爱加密亮相第十八届软博会,移动App安全引关注
2014年5月29日至31日,2014年第十八届中国国际软件博览会在北京展览馆举行,此次软博会的主题为"软件引领信息消费,助力经济转型升级",充分展示软件业在促进信息消费.提升社会 ...
- Oracle表的常用查询实验(一)
Oracle表的常用查询实验(一) 练习1.请查询表DEPT中所有部门的情况. select * from dept; 练习2.查询表DEPT中的部门号.部门名称两个字段的所有信息. select d ...
- Net Configuration Assistant和Net Manager的区别
1.Net Configuration Assistant和Net Manager在oracle的配置工具中,Net Configuration Assistant(网络配置助手)和Net Manag ...