11class Parent :
2+ """Represents a person with a first and last name."""
23 def __init__ (self , first_name : str , last_name : str ):
34 self .first_name = first_name
45 self .last_name = last_name
56
6- def get_name (self ) -> str : # get name is a method of class parent
7+ def get_name (self ) -> str :
8+ """Return the full name as 'First Last'."""
79 return f"{ self .first_name } { self .last_name } "
810
911
10- class Child (Parent ): #childclass of parent
12+ class Child (Parent ):
13+ """Represents a person who can change last names, tracking previous ones."""
1114 def __init__ (self , first_name : str , last_name : str ):
12- super ().__init__ (first_name , last_name ) #superclass constructor intialised in childclass
13- self .previous_last_names = [] #intialised a new attribute
15+ """Initialize a Child with a first and last name, plus a list of previous last names."""
16+ super ().__init__ (first_name , last_name )
17+ self .previous_last_names : list [str ] = []
1418
1519 def change_last_name (self , last_name ) -> None :
16- self .previous_last_names .append (self .last_name ) #append previous lastname to the previous_last_names[]
17- self .last_name = last_name #set the new one as last_name
20+ """Change the last name and record the previous one."""
21+ self .previous_last_names .append (self .last_name )
22+ self .last_name = last_name
1823
1924 def get_full_name (self ) -> str :
25+ """Return the full name, with suffix showing original last name if changed."""
26+ suffix = ""
2027 suffix = ""
21- if len (self .previous_last_names ) > 0 : #if last_name has been changes, it adds the previous last name as a suffix to the new one
28+ if len (self .previous_last_names ) > 0 :
2229 suffix = f" (née { self .previous_last_names [0 ]} )"
2330 return f"{ self .first_name } { self .last_name } { suffix } "
2431
@@ -31,7 +38,3 @@ def get_full_name(self) -> str:
3138
3239person2 = Parent ("Elizaveta" , "Alekseeva" )
3340print (person2 .get_name ())
34- print (person2 .get_full_name ()) #childclass method
35- person2 .change_last_name ("Tyurina" ) #childclass method
36- print (person2 .get_name ())
37- print (person2 .get_full_name ())
0 commit comments