pythonClass:面向对象高级编程__getitem__

官网解释:

创新互联建站专注于企业成都营销网站建设、网站重做改版、富蕴网站定制设计、自适应品牌网站建设、H5高端网站建设商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为富蕴等各大城市提供网站开发制作服务。

  • object.__getitem__(selfkey)

  • 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]

python Class:面向对象高级编程 __getitem__

print f[9]

python Class:面向对象高级编程 __getitem__


网站栏目:pythonClass:面向对象高级编程__getitem__
本文来源:http://bzwzjz.com/article/jsjdso.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站制作公司 成都网站设计 成都网站设计公司 网站建设公司 温江网站设计 成都网站制作 阿坝网站设计 网站制作 成都网站设计 手机网站制作 成都网站制作 品牌网站建设 成都模版网站建设 成都网站设计 成都网站设计公司 网站制作公司 重庆外贸网站建设 成都网站建设 自适应网站建设 成都企业网站建设 定制级高端网站建设 重庆网站建设