Проблема в том, как вы написали инициализатор класса.Класс должен отвечать за установку своих собственных данных;нет смысла писать функцию init, которая устанавливает атрибуты для хранения значений, а затем полагается на процесс вне класса, чтобы установить для них действительные значения.Итак:
class studentDef(object):
def __init__(self, firstName, lastName, id, address1, address2, city, state, zip, status):
self.firstName = firstName
self.lastName = lastName
self.id = id
self.address1 = address1
self.address2 = address2
self.city = city
self.state = state
self.zip = zip
self.status = status
Теперь вы можете просто передать строку, используя синтаксис *
, чтобы развернуть список в отдельные параметры:
cursor.execute(selectTxt)
for row in cursor:
mystudent = studentDef(*row)
(обратите внимание, в Python вы должныв значительной степени никогда итерация по range(len(something))
, всегда итерация по самой вещи.)
Похоже, что processStudent
должен быть методом класса studentDef.Наконец, обратите внимание, что стиль Python должен использовать InitialCaps для классов и lower_case_with_underscore для атрибутов: StudentDef, first_name, last_name.