首页 > 解决方案 > 拆分时超出范围(基本)

问题描述

我试图从文本文件中读取类对象并将其添加到列表中,但我超出了范围。我希望能够在文本文件中添加活动并在我调用时将它们全部打印出来,例如:activities.name,而不必给出列表的特定范围。

文本文件:

Football 7-8
Eating 9-10
Running 11-12
reading 13-14

代码:

class Activites:
    def __init__(self, name,startTime, endTime):
        self.name = name
        self.startTime = startTime
        self.endTime = endTime

def filee_():
    global activites
    activities = []
    f = open('text.txt', 'r').readlines()
    for i in f:
        time = i[2].split("-")
        activities.append(Activites(i[0], time[0], time[1]))  
    return activities

标签: python

解决方案


您需要先拆分i并获取索引 1。


class Activites:
    def __init__(self, name,startTime, endTime ):
        self.name = name
        self.startTime = startTime
        self.endTime = endTime
def filee_():
    global activites
    activities = []
    f = open('text.txt', 'r').readlines()
    for i in f:
        print(i)
        i=i.split()
        time = i[1].split("-")
        activities.append(Activites(i[0], time[0], time[1]))  
    return activities

因为您的函数filee_() 返回 Activity 对象的列表。您可以使用以下逻辑来迭代列表并获取名称。

for item in filee_():
    print(item.name)

推荐阅读