在Python中重写类的[]操作符(下标符号)的方法的名称是什么?
当前回答
你正在寻找__getitem__方法。参见http://docs.python.org/reference/datamodel.html,第3.4.6节
其他回答
你需要使用__getitem__方法。
class MyClass:
def __getitem__(self, key):
return key * 2
myobj = MyClass()
myobj[3] #Output: 6
如果你要设置值,你也需要实现__setitem__方法,否则会发生这样的情况:
>>> myobj[5] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: MyClass instance has no attribute '__setitem__'
你正在寻找__getitem__方法。参见http://docs.python.org/reference/datamodel.html,第3.4.6节
要完全重载它,你还需要实现__setitem__和__delitem__方法。
edit
我差点忘了……如果你想完全模拟一个列表,你还需要__getslice__, __setslice__和__delslice__。
它们都记录在http://docs.python.org/reference/datamodel.html中
推荐文章
- 如何规范化一个NumPy数组到一定的范围内?
- Python中的二分搜索(平分)
- 如何添加标题到一个Seaborn箱线图
- 把if-elif-else语句放在一行中?
- 我如何结合两个数据框架?
- 如何计数列表中唯一值的出现
- 为什么Pycharm的检查人员抱怨“d ={}”?
- 如何JSON序列化集?
- 在python中,年龄从出生日期开始
- 使用pip安装SciPy
- 在Python中,我应该如何测试变量是否为None, True或False
- 如何在Python中从毫秒创建datetime ?
- 如何解窝(爆炸)在一个熊猫数据帧列,成多行
- 如何使用pip安装opencv ?
- 在pip冻结命令的输出中“pkg-resources==0.0.0”是什么