<p>首先,在Python中<a href="http://www.diveintopython.net/getting_to_know_python/everything_is_an_object.html" rel="nofollow noreferrer">everything is an object</a>和方括号表示这个对象是<em>可下标的</em>(例如<code>tuple</code>、<code>list</code>、<code>dict</code>、<code>string</code>等等)。Subscriptable意味着这个对象至少实现了<code>__getitem__()</code>方法(在您的例子中是<code>__setitem__()</code>)。你知道吗</p>
<p>使用这些方法很容易与类成员交互,所以不要害怕构建自己的示例,理解其他人的代码。你知道吗</p>
<p>请尝试以下代码段:</p>
<pre><code>class FooBar:
def __init__(self):
# just two simple members
self.foo = 'foo'
self.bar = 'bar'
def __getitem__(self, item):
# example getitem function
return self.__dict__[item]
def __setitem__(self, key, value):
# example setitem function
self.__dict__[key] = value
# create an instance of FooBar
fb = FooBar()
# lets print members of instance
# also try to comment out get and set functions to see the difference
print(fb['foo'], fb['bar'])
# lets try to change member via __setitem__
fb['foo'] = 'baz'
# lets print members of instance again to see the difference
print(fb['foo'], fb['bar'])
</code></pre>