私はPythonには初めての学生です。私は、その唯一のメンバ変数として辞書を使用する配列クラスを定義しようとしています。私は、Pythonが唯一の構造化型として辞書を実装していると仮定しています(つまり、配列、リスト、タプルなどはありません)。辞書を使用して配列クラスを作る
私はそのようなプログラムをコーディングするのが難しいです。
これは私のコードです:
class array(object):
def __init__(self):
self.dic={}
def __init__(self,diction):
self.dic = {}
for x in diction:
self.dic.append(x)
def __setitem__(self,key,value):
self.dic[key]=value
def __getitem__(self,key):
if key not in self.dic.keys():
raise KeyError
return self.dic[key]
私はプログラムがこのように仕事をしたい:
a = array('a','b','c') #------output------
print(a) # ['a', 'b', 'c']
print(a[1]) # b
a[1] = 'bee'
print(a) # ['a', 'bee', 'c']
a[3] = 'day'
print(a) # ['a', 'bee', 'c', 'day']
print(a[6]) # IndexError exception
任意の提案、アドバイス。 :)
なぜ2つの__init__関数がありますか? –
Pythonは複数のコンストラクタの意味でのオーバーロードをサポートしていないので、1つの '__init__'(2番目)だけが使用されます。代わりにデフォルトの引数を使用する –
クラス配列を呼び出さないことをお勧めします。同じ名前のPythonデータ構造と衝突することになります。代わりにMyArrayなどと呼んでください。 @DanielleM。 –