Может кто-нибудь поможет? Я новичок в python и часами смотрю на эту проблему.
У меня есть человек и класс студентов, и я учусь проверять ввод с помощью геттеров / сеттеров. Класс person принимает имя, фамилию, возраст и пол, и все они правильно вызывают сеттер. Когда я добираюсь до среднего балла в классе студентов, он не вызывает установщика и продолжает выдавать ошибку, потому что пытается добавить средний балл к общему баллу моего студента перед его проверкой. Пожалуйста помоги! Мой код ниже.
ЭТОТ КЛАСС РАБОТАЕТ ПРАВИЛЬНО:
class Person:
'Common base class for all people'
intPeopleCount = 0
def __init__(self, firstname, lastname, age, gender):
self.firstname = firstname
self.lastname = lastname
self.age = age
self.gender = gender
Person.intPeopleCount += 1
@property
def firstname(self):
return self.__firstname
@property
def lastname(self):
return self.__lastname
@property
def age(self):
return self.__age
@property
def gender(self):
return self.__gender
@firstname.setter
def firstname(self, firstname):
if firstname == " ":
raise Exception('Must input first name.')
else:
self.__firstname = firstname
@lastname.setter
def lastname(self, lastname):
if lastname == " ":
raise Exception('Must input last name.')
else:
self.__lastname = lastname
@age.setter
def age(self, age):
if age == " ":
raise Exception('Must input age.')
if int(age) < 0:
raise Exception('Age cannot be less than 0.')
else:
self.__age = age
@gender.setter
def gender(self, gender):
if gender.lower() != 'female':
if gender.lower() != 'male':
raise Exception('Gender must be male or female.')
else:
self.__gender = gender
else:
self.__gender = gender
ЭТО ОШИБКИ БРОСА КЛАССА - Установщик GPA не вызывается !!
#Import Person Class
import PersonClass as person
class Student(person.Person):
'Common base class for all students'
intStudentCount = 0
intFemaleCount = 0
intMaleCount = 0
dblGPATotal = 0
intFemaleAgeTotal = 0
intMaleAgeTotal = 0
def __init__(self, firstname, lastname, age, gender, GPA):
person.Person.__init__(self, firstname, lastname, age, gender)
self.GPA = GPA
if (gender == 'Male'):
Student.intMaleCount += 1
Student.intMaleAgeTotal += int(age)
else:
Student.intFemaleCount += 1
Student.intFemaleAgeTotal += int(age)
Student.dblGPATotal += GPA
Student.intStudentCount += 1
@property
def GPA(self):
return self.__GPA
@GPA.setter
def GPA(self, GPA):
if GPA == " ":
raise Exception('Must input GPA.')
elif GPA < 0:
raise Exception('GPA must be 0.00 or higher.')
elif GPA > 4.0:
raise Exception('GPA must be 4.00 or lower.')
else:
self.__GPA = GPA
Спасибо D: