• 技术文章 >Python技术 >Python基础教程

    python中_getitem_如何使用?

    小妮浅浅小妮浅浅2020-12-09 17:13:45原创5075

    当我们想要去查询一个元素时,通常会选择用函数解决,其实类方法也同样可以达到一样的效果。不过大家在类方法的使用上没有函数频繁,所以小编就_getitem_类方法为大家进行介绍,主要功能是用到获取想要制定的元素。至于在效果上是不是那么神奇,就需要小伙伴们跟小编一起往下看啦。


    凡是在类中定义了这个__getitem__ 方法,那么它的实例对象(假定为p),可以像这样

    p[key] 取值,当实例对象做p[key] 运算时,会调用类中的方法__getitem__。

    一般如果想使用索引访问元素时,就可以在类中定义这个方法(__getitem__(self, key) )。

    Python的魔法方法__getitem__ 可以让对象实现迭代功能,这样就可以使用for...in... 来迭代该对象了

    class Animal:
        def __init__(self, animal_list):
            self.animals_name = animal_list
    animals = Animal(['dog','car','fish'])
    for animal in animals:
        print(animal)
     
    -----
    Traceback (most recent call last):
      File "E:/PyObject/gettime.py", line 7, in <module>
        for animal in animals:
    TypeError: 'Animal' object is not iterabl

    在用 for..in.. 迭代对象时,如果对象没有实现 __iter__ __next__ 迭代器协议,Python的解释器就会去寻找__getitem__ 来迭代对象,如果连__getitem__ 都没有定义,这解释器就会报对象不是迭代器的错误:TypeError: 'Animal' object is not iterable

    以上就是python中_getitem_的使用方法。如果使用__getitem__ 也不能查询到对象,就会进行对象的错误,这点还是比较特殊,小伙伴们可以重点记一下。

    专题推荐:_getitem_
    上一篇:getattr在python中获取不存在属性出错 下一篇:如何使用python制作生成二维码?

    相关文章推荐

    • 什么是网络协议• python中的去除重复项的操作• python中少见的函数map()和partial()• python的sort()排序方法• Python中的文件读写-理论知识

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网