2013-07-01 32 views
-2

當我有這樣的方法:開箱錯誤檢測方法

def split_pointer_part(self, line): 
    self.before_at, self.after_at = line.split('@', 1) 
    return self.before_at, self.after_at 

正在工作,但是當我在它上面運行這個測試:

def test_split_pointer_part(self): 
     line = '13797906 23 n 04 flood 0 inundation 0 deluge 0 torrent 0 005 @ 13796604 n 0000 + 00603894 a 0401 + 00753137 v 0302 + 01527311 v 0203 + 02361703 v 0101 | an overwhelming number or amount; "a flood of requests"; "a torrent of abuse"' 
     result = self.wn.split_pointer_part(line) 
     answer = ('13797906 23 n 04 flood 0 inundation 0 deluge 0 torrent 0 005',' 13796604 n 0000 + 00603894 a 0401 + 00753137 v 0302 + 01527311 v 0203 + 02361703 v 0101 | an overwhelming number or amount; "a flood of requests"; "a torrent of abuse"') 
     self.assertEqual(len(result), 2) 
     for r, a in zip(result, answer): 
      self.assertEqual(r, a) 

這是錯誤我得到:

self.before_at, self.after_at = line.split('@', 1) 
ValueError: need more than 1 value to unpack 

我知道我應該在某處使用argv,但我不知道如何在這種情況下使用它。

+1

你確定這就是你的字符串試圖使用 - 我很驚訝你沒有得到一個斷言錯誤 - 我猜這不是實際的數據失敗(以及我的答案) –

回答

1

因爲第二裂後,沒有什麼是...嘗試使用將保證after_at以下將'',如果不存在,而不是拋出一個異常:

before_at, after_at = line.partition('@')[::2]