python类行结构

2024-04-25 21:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想实现以下逻辑:

class FileType01(object):
     ....

file_in = FileType01('input.txt')

for line in file_in:
    print(line.prop1)
    print(line.prop2)
    print(line.prop3)

我想要的是构造这个类,在dict中使用一组硬编码的片段,并使用一个迭代器 每次生成一个具有3个属性(prop1、prop2、prop3)的对象,这些属性将以字符串形式包含切片的值

我只使用一个迭代器来实现它,迭代器填充dict并生成dict,您对如何生成实例化的类对象有什么建议吗

这是我的示例代码,提前谢谢你

class FileType01(object):

    def __init__(self, file_in):
        self.filename = file_in

    def line_struct(self):
        dict_out = {}

        prop_struct = {
            'prop1' : ( 0, 10 ),
            'prop2' : ( 11, 15 ),
            'prop3' : ( 16, 3)
        }

    prop1 = ''
    prop2 = ''
    prop3 = ''

    with open(self.filename, 'r') as f:
        for line in f:
            dict_out['prop1'] = line[int(prop_struct['prop1'][0]):int(prop_struct['prop1'][1])]
            dict_out['prop2'] = line[int(prop_struct['prop2'][0]):int(prop_struct['prop2'][1])]
            dict_out['prop3'] = line[int(prop_struct['prop3'][0]):int(prop_struct['prop3'][1])]
            yield dict_out

file_in = FileType01('input.txt')


for line in file_in.line_struct():
    # this works
    print(line.['prop1'])
    # this is what i would like:
    print(line.prop2)

Tags: inselfforlineoutstructdictfile