Найти - Пользователи
Полная версия: поясните про класс
Начало » Python для новичков » поясните про класс
1
astalavista
на входе есть строка ввида:
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
как задать атрибуты - name и age, нужен вложенный класс или что? подскажите направление
Soteric
Нужно обернуть name и age в класс. Т.е. что-то такое:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
И в список records складывать экземпляры Person:
records.append(Person(values[0], values[1]))
Тогда с ними можно будет работать как с объектами.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB