Так вот код предоставлен. Я проверил несколько вещей сам. Я узнал, что если я добавлю print (i) после (для i в L), он будет печатать нули, но если я добавлю print (i) после (если i :), то он не будет печатать нули. Я искал в Интернете и мой учебник, но я не могу объяснить это самостоятельно. Что именно делают «if L:» и «if i:»? Любая помощь будет великолепна, спасибо.
class TestClass(object):
def __init__(self,L=None):
self.D = {}
if L:
for i in L:
if i:
if i in self.D:
self.D[i] += 1
else:
self.D[i] = 1
def __add__(self,param):
if type(param) == TestClass:
for k, v in param.D.items():
if k in self.D:
self.D[k] += v
else:
self.D[k] = v
return TestClass(self.D)
else:
return self + TestClass(param)
def __str__(self):
out_str = ''
for k, v in self.D.items():
out_str += '{}:{}, '.format(k, v)
out_str = out_str.strip(", ")
return out_str
inst1 = TestClass([-1,0,0,1,2,3,3])
print(inst1)