При попытке добавления данных в словарь методом put, сохраняется только последнее введенное значение (при выводе на экран метода count, выдаст 1, хотя фамилий намного больше). Плюс ко всему метод __str__ вообще ничего не выводит. В чем может быть проблема? Заранее спасибо.
class Vedomost(object):
def __init__(self, dis, group):
self.__dis = dis
self.__group = group
self.__ved = {}
@property
def ved(self):
return self.__ved
@property
def dis(self):
return self.__dis
@property
def group(self):
return self.__group
def __str__(self):
return '{0:10} <=> {1:10} <=> {2:10}'.format(self.__dis, self.__group, self.__ved)
def put(self, fam, mark):
self.__ved.update(fam = mark)
def get(self, fam):
return self.__ved.get(fam)
def change(self, fam, mark):
self.__ved[fam] = mark
def delete(self, fam):
del self.ved[fam]
def result(self):
exc = 0
good = 0
nb = 0
bad = 0
nz = 0
for key in self.ved:
if self.__ved[key] == 'отл':
exc += 1
elif self.__ved[key] == 'хор':
good += 1
elif self.__ved[key] == 'уд':
nb += 1
elif self.__ved[key] == 'неуд':
bad += 1
elif self.__ved[key] == 'н':
nz += 1
return (exc, good, nb, bad, nz)
def count(self):
return len(self.__ved)
def names(self):
return self.__ved.keys()
his = Vedomost(dis = 'История', group = 'BI 1-1')
his.put(fam = 'Иванов', mark = 'уд')
his.put(fam = 'Артемов', mark = 'хор')
his.put(fam = 'Назаров', mark = 'отл')
his.put(fam = 'Иванчук', mark = 'неуд')
his.put(fam = 'Сидоров', mark = 'уд')
his.put(fam = 'Павлов', mark = 'отл')
his.put(fam = 'Рожков', mark = 'отл')
his.put(fam = 'Шефчук', mark = 'н')
his.put(fam = 'Морозов', mark = 'хор')
print(his.result())
print(his.count())