官网解释:object.__getitem__(self, key)

Called to implement evaluation of self[key]. For sequence types,the accepted keys should beintegersandslice objects. Note that the special interpretation of negative indexes (if the class wishes to emulate a sequence type) is up to the __getitem__()method. If key is of an inappropriate type, TypeError may be raised; if of a value outside the set of indexes for the sequence (after any special interpretation of negative values), IndexError should be raised. For mapping types, if key is missing (not in the container), KeyError should be raised.

Note:for loops expect that an IndexError will be raised for illegal indexes to allow proper detection of the end of the sequence.

对于Fibonacci数列,当我们想抽取特定位置的值看,那又该怎么做,于是就出来了__getitem__这样的函数。

int、list类型:切片(没有step)

#!/usr/bin/python

# -*- coding: utf-8 -*-

class Fib(object):

def __getitem__(self, n):

if isinstance(n, int): # n是索引

a, b = 1, 1

for x in range(n):

a, b = b, a + b

return a

if isinstance(n, slice): # n是切片

start = n.start

stop = n.stop

if start is None:

start = 0

a, b = 1, 1

L = []

for x in range(stop):

if x >= start:

L.append(a)

a, b = b, a + b

return L

f = Fib()

print f[0:4]

print f[9]

python getitem_python Class:面向对象高级编程 __getitem__相关推荐

  1. Python学习之面向对象高级编程

    Python学习目录 1. 在Mac下使用Python3 2. Python学习之数据类型 3. Python学习之函数 4. Python学习之高级特性 5. Python学习之函数式编程 6. P ...

  2. Python基础之六面向对象高级编程

    '''面向对象高级编程 ''' from enum import Enum'''__slots__限制实例属性定义的属性只对当前类实例起作用,对于继承的子类不起作用''' class Student( ...

  3. Python学习笔记:面向对象高级编程(中上)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  4. python笔记02_面向对象编程和面向对象高级编程

    面向对象编程 变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__.__score__这样 ...

  5. Python学习笔记:面向对象高级编程(完)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:面向对象高级编程(中下)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:面向对象高级编程(上)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. python高级属性 用法 编程_python高级编程之面向对象高级编程

    1 面向对象编程 面向对象这节比较简单,就稍微总结几个特殊的点. 特殊方法__init__前后分别有两个下划线,__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init ...

  9. 【廖雪峰python总结】python高级特性,函数式编程,面向对象编程,面向对象高级编程

    文章目录 python复习总结 python高级特性 函数式编程 面向对象编程 面向对象高级编程 python复习总结 python高级特性 python高级特性 函数式编程 函数式编程 函数式编程的 ...

最新文章

  1. Window7+vs2008+QT环境搭建
  2. 读《持续交付2.0》
  3. Running(POJ-3661)
  4. Centos查看与关闭防火墙
  5. 结构体数组(C++)
  6. 网络第八和九章要点总结
  7. 对客户端树控件的包装
  8. NVisionXR_iOS教程十一 —— 多场景切换
  9. bzoj 2865 字符串识别——后缀数组
  10. Java操作数据库(一,JDBC的入门)
  11. lbochs模拟器最新版_Bochs模拟器
  12. 程序员修炼之道 读书笔记2
  13. bzoj4565 [Haoi2016]字符合并 (区间DP + 状压DP)
  14. Linux下误删除文件的各种恢复工具
  15. RHCE认证考试介绍
  16. python:初识自动化测试 playwright 库
  17. 许又声发表新春贺辞:潮涌东方 携手奋进
  18. 一对多GRE隧道配置
  19. 利用西瓜播放器(xgplayer)实现直播点播
  20. 详述 IntelliJ IDEA 遇到快捷键以及删除键不好使的解决方法

热门文章

  1. “苹果税”消停了?应用商店将允许第三方支付接入
  2. 高中生的高效学习法之“纵横术”
  3. 解决“A problem has been encountered while loading the setup components. Canceling setup.”的问题
  4. 【java基础】java的键盘输入
  5. ROS 禁止公网暴力破解SSH FTP
  6. 前端系列之jQuery(jQuery瀑布流布局)
  7. CoInitialize浅析一
  8. Java毕业论文参考文献参考例子整理
  9. 最新省市区地区数据sql版本(2019年1月)
  10. 小米平板6和小米平板6Pro的区别 小米平板6和小米平板6pro参数对比