私はPython 3で演算子の多重定義を使用して私の最初のプログラムを作成していますが、を貼り付けて(+)演算子を追加しました。Python 3の__add__メソッド
def __add__(self, newMember):
if(isinstance(newMember, Queue)):
tempList=self.myQueue[:] # makes a copy
tempList.extend(newMember.myQueue)
return Queue(tempList)
def __str__(self):
if not self.myQueue:
string="."
else:
string=""
for x in self.myQueue:
string=string+str(x)
if(x<len(self.myQueue)):
string=string+", "
else:
string=string+"."
return string
基本的に私はC = C1 + C2を入力することにより、2つのキューのオブジェクトを接続する、その後、(私は、1つが存在するが、すでにそこに知っている)キュークラスを作ってるんです。しかし、私が(c)を印刷すると、それは "、"と "。"を混乱させました。何が間違っているのか理解できません。 助けてください?
あなたは 'tempList =キュー(self.myQueue)'またはそのような何かを行うべきではないでしょうか。私はPythonについてよく分かりませんが、 'self.myQueue'を' tempList'に割り当てると、 'tempList'は' self.myQueue'と同じオブジェクトを参照しているかもしれません... – dreamlax
私は私の質問を編集しました。私は本当に同じオブジェクトに言及したので、[:]を追加しました。私はtempListをQueue型にするのではなくList型を返すようにしたいので、Queue(リスト)を返すことができます – Jjang
なぜこのタグは[C++]ですか? – geoffspear