class superList(list):
def __sub__(self, b):
a = self[:] # 这里,self是supeList的对象。由于superList继承于list,它可以利用和list[:]相同的引用方法来表示整个对象。
b = b[:]
while len(b) > 0:
element_b = b.pop()
if element_b in a:
a.remove(element_b)
return a
print superList([1,2,3]) - superList([3,4])
这个代码目的是定义一个序列的减法,我疑惑的地方是while和if的顺序,如果while在前,并且把b.pop()赋值给element b,然后再执行if,那么从一开始序列岂不是就少了一个元素吗?是不是我对pop的认识还不充分所以导致了我的认识错误,希望大神求解
def __sub__(self, b):
a = self[:] # 这里,self是supeList的对象。由于superList继承于list,它可以利用和list[:]相同的引用方法来表示整个对象。
b = b[:]
while len(b) > 0:
element_b = b.pop()
if element_b in a:
a.remove(element_b)
return a
print superList([1,2,3]) - superList([3,4])
这个代码目的是定义一个序列的减法,我疑惑的地方是while和if的顺序,如果while在前,并且把b.pop()赋值给element b,然后再执行if,那么从一开始序列岂不是就少了一个元素吗?是不是我对pop的认识还不充分所以导致了我的认识错误,希望大神求解