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