#python #python-3.x
Вопрос:
Я создал простой список учащихся и хочу добавить созданные вручную объекты учащихся, используя метод, приведенный ниже. Он выдает ошибку, в которой говорится, что для этого требуется дополнительный аргумент.
class Student: def __init__(self, first_name, last_name, student_num, email, pps, middle_name): self.first_name = first_name self.last_name = last_name self.student_num = student_num self.email = email self.__pps = pps self.__middle_name = middle_name self.student_list =[] def get_full_details(self): details = self.first_name " " self.last_name " " str(self.student_num) " " self.email return details def add_student(self, student_object): return self.student_list.append(student_object) # Creating 4 student objects student1 = Student("Jimmy", "Mccarthy", 1234, "johnmc@gmail.com", 8074454, "Edward") student2 = Student("James", "Flynn", 5678, "James@gmail.com", 7367736, "Borck") student3 = Student("Emma", "Mcgath", 9837, "EMChammer@hotmail.com", 3455433, "Richei") student4 = Student("Echo", "O Leary", 4334, "Echool@gmail.com", 4333357, "Wei") Student.add_student(student1)
Комментарии:
1. Вы вызываете
add_student
класс , а не экземпляр , но не сделали его@classmethod
. Неясно, следует ли вместо этого вызывать его в экземпляре, превращать в правильный метод класса или что-то совсем другое.2.
student_list
Для чего это нужно? Должен ли каждый студент иметь свой собственный список студентов? Или это должно быть атрибутом класса?3. я думал, вы упомянули, что этот
add_student
метод находится в классе курса?
Ответ №1:
Если вы позвоните Student.add_student
, вам понадобится 2 аргумента: self, student_object
. Вы можете решить эту проблему , если сначала вызовете конструктор класса student1 = Student("Jimmy", "Mccarthy", 1234, "johnmc@gmail.com", 8074454, "Edward")
, а затем используете add_student на student1: student1.add_student(Student("James", "Flynn", 5678, "James@gmail.com", 7367736, "Borck"))
.