有一個類應該創建一個描述連接到遠程Linux服務器使用paramiko的對象。Python類奇怪的行爲
class Oracle:
def __init__(self):
...
self.outfile = outfile
在這堂課我有2個功能。文件的一個回報列表:
def oratab(self):
self.remote.send("cat /etc/oratab\n")
...
return oralst
> [u'one', u'oneone', u'oneoneone']
另外一個利用的oratab FUNC文件列表返回從遠程服務器的信息:
def get_arcs(self, n):
yield basestatus, sum(lst)
self.remote.send("exit\n")
time.sleep(1)
如果我通過價值get_arcs手動它的工作原理確定。
如果我手動通過oratab調用,它工作正常。
如果我合計這兩個功能結合在一起:
for i, y in zip(instance.get_arcs(), instance.oratab()):
print i, y
它返回相同的結果兩次,即使它應該削減到最小的一個(這兩個列表是3元大) 所以,如果我呼籲所有那些沒有另一個函數的調用看起來不錯,但是如果它們在同一個腳本中執行,結果都是意外的(即使沒有zip())
我想:__for一個在(0,1,2):對於I,Y拉鍊(名單(instance.get_arcs(一)) ,instance.oratab()):print i,y__但它返回了第一個func可迭代的罰款,但第二個沒有被迭代:http://prntscr.com/et3dmg __orcl__是oratab的第一個元素,每當其他2個沒有被稱爲 – feedthemachine
我寧願不迭代我的oratab函數,因爲它需要大量的代碼重構 – feedthemachine