__getitem__

原创 2018年04月15日 20:44:29

代码怎么写的时候才能调用python的內建函数__getitem__

>>> class A():
...     def __getattribute__(self, value):
...         print("come on")
...         return value
... 
>>> 
>>> 
>>> a = A()
>>> a.get('key')
come on
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
>>>

上面的例子虽然不是很恰当,但是我得到了我想要的答案,并且 如果a是字典的话a[‘key’]也是会触发__getitem__
同理,一般对象还有下面的内建函数,大家可以了解下喽。

[‘add‘, ‘class‘, ‘contains‘, ‘delattr‘, ‘dir‘, ‘doc‘, ‘eq‘, ‘format‘, ‘ge‘, ‘getattribute‘, ‘getitem‘, ‘getnewargs‘, ‘gt‘, ‘hash‘, ‘init‘, ‘iter‘, ‘le‘, ‘len‘, ‘lt‘, ‘mod‘, ‘mul‘, ‘ne‘, ‘new‘, ‘reduce‘, ‘reduce_ex‘, ‘repr‘, ‘rmod‘, ‘rmul‘, ‘setattr‘, ‘sizeof‘, ‘str‘, ‘subclasshook‘]

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dqchouyang/article/details/79952996

python __getitem__()方法理解

如果在类中定义了__getitem__()方法,那么他的实例对象(假设为P)就可以这样P[key]取值。当实例对象做P[key]运算时,就会调用类中的__getitem__()方法。 # -*- c...
  • chituozha5528
  • chituozha5528
  • 2017-10-26 15:52:25
  • 955

Python中的__getitem__和__setitem__特殊方法

在Nova的源码中,基本上所有的lei
  • luzheqi
  • luzheqi
  • 2014-11-21 11:01:50
  • 2125

python :使用 __getitem__ 和 __iter__ 可以使类成为一个迭代器

# -*- coding: utf-8 -*- class Library(object): def __init__(self): ...
  • heyijia0327
  • heyijia0327
  • 2015-04-17 20:10:27
  • 1492

详解Python魔术方法__getitem__、__setitem__、__delitem__、__len__

Python的魔术方法一般以__methodname__的形式命名,如:__init__(构造方法), __getitem__、 __setitem__(subscriptable所需method...
  • liwei825755184
  • liwei825755184
  • 2017-02-07 11:24:18
  • 641

python object has no attribute '__getitem__'

class Animal(object): def __init__(self, name): self.name = name a1 = Animal...
  • lanyang123456
  • lanyang123456
  • 2017-05-30 22:04:55
  • 5163

python四个魔法方法__len__,__getitem__,__setitem__,__delitem__

python中除了可以使用内建的类型,如list,tuple,dict,还可以创建自己的对象来实现像这些内建类型的访问,不过需要在定义类的时候对一些魔法方法逐一实现。 如下: class DictDe...
  • yuan_j_y
  • yuan_j_y
  • 2013-07-13 21:32:47
  • 18699

Python中__getitem__()和__setitem__()的使用实例

使用如下:
  • u011653701
  • u011653701
  • 2015-06-03 16:10:52
  • 438

python总结(五):__get__、__getattr__、__getitem__、__getattribute__之间的差异与联系

python的一切数据都是对象,包括函数、基本数据类型、自定义数据类型等等,这其中最复杂的就是对象内部存储的数据结构(引用),包括类属性、数据描述符、实例属性及非数据描述符,不仅它们的优先级不一样,而...
  • yiifaa
  • yiifaa
  • 2017-09-23 10:00:43
  • 2245

TypeError: 'generator' object has no attribute '__getitem__'

源代码出处:
  • u010565244
  • u010565244
  • 2014-09-10 09:40:35
  • 5704
收藏助手
不良信息举报
您举报文章:__getitem__
举报原因:
原因补充:

(最多只允许输入30个字)