У меня есть файл, например:Создание класса, который наследует от Dict, используя txtfile - питона
1 23
2 21
5 23
561 2
73 19781
И с этой функцией:
def readx(x):
return {int(line.split()[0]):int(line.split()[1]) for line in x.split('\n')}
я могу получить это:
{1: 23, 2: 21, 5: 23, 73: 19781, 561: 2}
Но мне нужно положить его в какой-то классный объект, поэтому я пробовал это:
z = """1 23
2 21
5 23
561 2
73 19781"""
def readx(x):
return {int(line.split()[0]):int(line.split()[1]) for line in x.split('\n')}
class Foo(dict):
def __init__(self, x):
self = readx(x)
f = Foo(z)
print f
Но вместо словаря он возвращает None.
- Есть ли более питонический способ сделать
readx()
? Это немного уродливое, как сейчас. - Как получить объект класса для работы и сделать
foo
с помощью ключей и значений?
На самом деле это '{1: 23, 2: 21, 5: 23, 73: 19781, 561: 2}' уже является своего рода объектом класса, не так ли? Это экземпляр 'dict' –
@alvas пытается сделать' для k, v в readx (x) .items(): self [k] = v' ... –
в вашем конструкторе использовать self .__ x = readx (x) и свойство вашего класса для доступа к переменной self .__ x – tschm