Question: Please complete the TODOs in class Course using Python 3.8: class Course: A University Course === Public Attributes === name: the name of the

Please complete the TODOs in class Course using Python 3.8:

Please complete the TODOs in class Course using Python 3.8: class Course:

""" A University Course === Public Attributes === name: the name of

the course students: a list of students enrolled in the course ===

class Course: """ A University Course === Public Attributes === name: the name of the course students: a list of students enrolled in the course === Representation Invariants === - No two students in this course have the same id - name is not the empty string """ name: str students: List[Student] def __init__(self, name: str) -> None: """ Initialize a course with the name of . """ #TODO def enroll_students(self, students: List[Student]) -> None: """ Enroll all students in  in this course. If adding any student would violate a representation invariant, do not add any of the students in  to the course. """ #TODO def all_answered(self, survey: Survey) -> bool: """ Return True iff all the students enrolled in this course have a valid answer for every question in . """ #TODO def get_students(self) -> Tuple[Student, ...]: """ Return a tuple of all students enrolled in this course. The students in this tuple should be in order according to their id from lowest id to highest id. Hint: the sort_students function might be useful """ #TODO 

if TYPE_CHECKING: from survey import Answer, Survey, Question adef sort_students(lst: List[Student), attribute: str) -> List[Student]: Return a shallow copy of = Precondition = is a attribute name for the Student class >>> sl = Student(1, Misha') >>> s2 = Student (2, 'Diane) >>> s3 = Student(3, 'Mario') >>> sort_students([s1, s3, s2], 'id') = [s1, s2, 53] True >>> sort_students([51, 52, 53], 'name') - [52, 53, si] True return sorted(lst, key=lambda s: getattr(s, attribute)), class Student: A Student who can be enrolled in a university course. --- Public Attributes --- id: the id of the student name: the name of the student Representation Invariants - name is not the empty string id: int name: str definit__(self, id_: int, name: str) -> None: Initialize a student with name and id str: Return the name of this student " return self.name def has_answer(self, question: Question) -> bool: Return True iff this student has an answer for a question with the same id as None: Record this student's answer . self.qa[question] = answer def get_answer(self, question: Question) -> Optional [Answer]: Return this student's answer to the question if question in self.qa: return self.qa[question] return None

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!