擅长:python、mysql、java
<p>是的,<code>__getitem__</code>有效。;)您还应该定义<code>__setitem__</code>。{cd3>还添加了方法。在</p>
<pre><code>class Kaart:
def __init__(self, rows = 10, colls = 10):
self.rows = rows
self.colls = colls
self.matrixRC = []
for _ in range(rows):
self.matrixRC.append([2 for _ in range(colls)])
def __getitem__(self, key):
r, c = key
return self.matrixRC[r][c]
def __setitem__(self, key, value):
r, c = key
self.matrixRC[r][c] = value
def __str__(self):
return '\n'.join(str(row) for row in self.matrixRC)
kaart = Kaart()
kaart[2, 3] = 7
print(kaart)
print(kaart[2, 3])
</code></pre>
<p><strong>输出</strong></p>
^{pr2}$
<hr/>
<p>如果我们遵循<a href="https://stackoverflow.com/questions/47548524/class-lookup-function-python/47548672#comment82055773_47548524">Roars suggestion in the comments</a>,我们可以稍微简化<code>__str__</code>方法。在</p>
<pre><code>def __iter__(self):
return self.matrixRC.__iter__()
def __str__(self):
return '\n'.join(str(row) for row in self)
</code></pre>