Я хотел бы заполнить каждую строку в файле отдельным объектом класса student из другого модуля, а затем сохранить его в списке, но я получаю сообщение об ошибке, строка 6 NameError: имя «Sid» не определено. ...

-1
Kittens 10 Апр 2021 в 05:11

2 ответа

Лучший ответ

Имена переменных Sid, Sname и Sage не существуют в вашем цикле foor, эти переменные были определены в вашем классе Student. Насколько я понимаю, у вас есть текстовый файл с 3 столбцами и (каждый столбец представляет Sid, Sname и Sage соответственно).

def readStudent():
    student_list = []
    with open("Student.txt", "r") as f:
        for line in f:
            student = Student(*line.split())
            student_list.append(student)
0
Andrex 10 Апр 2021 в 02:25

Вы, вероятно, имели в виду что-то вроде этого:

for line in f:
    sid, sname, sage = line.split(",")
    student = Student(sid, sname, int(sage))
    student_list.append(student)

О, и вы забыли return student_list из функции.

Кстати, если вы изучаете Python, не забудьте ознакомиться с руководством по стилю pep-8: https://www.python.org/dev/peps/pep-0008/

0
Konstantin 10 Апр 2021 в 02:28