2013-09-22 3 views
2

Как обойти эту ошибку при использовании .pop? Я получаю это, когда он пытается вернуть число, но не возникает ошибка, но как вы обойдете его, чтобы программа продолжала работать?KeyError: «pop from the empty set» python

def remove_element(self,integer): 
    self.integer = integer 
    self.members.pop() 

ответ

4

Просто проверьте, если self.members не пуст:

if self.members: 
    self.members.pop() 

или поймать KeyError через try/except:

try: 
    self.members.pop() 
except KeyError: 
    # do smth 
+1

изменить это на 'KeyError'. Также лучше не использовать голый 'except' (например, это также скроет' AttributeError' и т. Д.). –

+1

... и на самом деле поставить 'KeyError' в' except' clause :) –

2

Вы можете использовать try/except поймать KeyError поднятый an_empty_set.pop(), или чеком сначала установите, чтобы убедиться, что он не пуст:

if s: 
    value = s.pop() 
else: 
    # whatever you want to do if the set is empty