所以我在Python 3與運營商超載使我的第一個程序,我stucked在添加(+)運算符。__add__方法在Python 3
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
基本上我正在做Queue類(I已經知道有這樣一個存在),然後通過鍵入C = C1 + C2連接兩個隊列對象。但是當我打印(c)時,它弄亂了「,」和「。」。不能得到什麼錯誤。 有什麼幫助嗎?
你不應該做'tempList =隊列(self.myQueue)'或類似的東西?我不太瞭解Python,但是如果你只是將'self.myQueue'賦值給'tempList',那麼'tempList'指的是與'self.myQueue'相同的對象... – dreamlax 2012-04-21 13:52:14
我編輯了我的問題。我真的對同一個對象有所反應,所以我添加了[:]。我不希望tempList是一個隊列類型,但一個列表類型,所以我可以返回隊列(列表) – Jjang 2012-04-21 14:04:01
爲什麼這標記爲[C++]? – geoffspear 2012-04-21 14:07:27