__setitem__
を使用するときにキーのタイプをテストすることはできません。しかし、不思議なことに、複数のキーを使用するとコードの一部が省略されることがわかりました。ここに私のテストクラスです:Python __setitem__が複数のキーを使用すると奇妙なこと
class foo():
def __init__(self):
self.data=[[1,2],[3,4],[5,6]]
def __getitem__(self, key):
return self.data[key]
def __setitem__(self, key, value):
print('Key is {0}, type of key is {1}'.format(key,type(key)))
self.data[key] = value
f = foo()
使用つのキーは、それは大丈夫だ時:
>>>f[1] = [0,0]
Key is 1, type of key is <class 'int'>
>>>f[1]
[0, 0]
使用2つのキーが、結果は正しいですが、何も
>>>f[1][1] = 100
>>>f[1][1]
100
をプリントアウトしていないことが理由
私はPythonで何か新しい提案をいただければ幸いです。