如何在Python中为类定义[]?

时间:2009-09-29 18:22:18

标签: python

我觉得这个问题已经被问到并回答了,但我找不到任何关于主题的内容,所以请原谅我是否如此。我想在应用于类时定义[]括号的行为,类似于ruby中的def []=()构造,因此调用Python obj['foo']实际上会调用一些[](self, what)方法。我怎么能这样做?

4 个答案:

答案 0 :(得分:11)

这些都在文档中:__getitem__

答案 1 :(得分:7)

这是在Python中使用__getitem___完成的。

以下是所有运营商的列表: http://docs.python.org/library/operator.html

答案 2 :(得分:5)

使用__getitem__(key)__setitem__(key, value)

在您的班级中定义方法

答案 3 :(得分:4)

http://docs.python.org/reference/datamodel.html

上面链接中的第3.4节显示了您可以在Python中重载的所有或大多数运算符。你要重载的是

__getitem__()