a = "'Vasya'~'20':'Petya'~'15':'Kolya'~'25':'Vova'~'9'"
class A:
def func(self,mdata):
records = []
allrecords = mdata.split(':')
for record in allrecords:
values = record.split('~')
records.append(values)
records.sort(key=lambda item: item[1])
self.data = records
Сортирует это дело не правильно , так как пытается сортировать, как строку, а надо как число, то есть
records.sort(key=lambda item: item)
как-то надо поправить
PS. С сортировкой разобрался
records.sort(key=lambda item: int(item))
И самое главное хотелось бы обращаться к обекту так
obj = A()
print obj.func(a).data[0] #работает и выводит ['Petya','15']
print obj.func(a).data[0].name #должно выводить 'Petya'
print obj.func(a).data[0].age #должно выводить 15