1+ class Parent :
2+ def __init__ (self , first_name : str , last_name : str ):
3+ self .first_name = first_name
4+ self .last_name = last_name
5+
6+ def get_name (self ) -> str :
7+ return f"{ self .first_name } { self .last_name } "
8+
9+
10+ class Child (Parent ):
11+ def __init__ (self , first_name : str , last_name : str ):
12+ super ().__init__ (first_name , last_name )
13+ self .previous_last_names = []
14+
15+ def change_last_name (self , last_name ) -> None :
16+ self .previous_last_names .append (self .last_name )
17+ self .last_name = last_name
18+
19+ def get_full_name (self ) -> str :
20+ suffix = ""
21+ if len (self .previous_last_names ) > 0 :
22+ suffix = f" (née { self .previous_last_names [0 ]} )"
23+ return f"{ self .first_name } { self .last_name } { suffix } "
24+
25+ person1 = Child ("Elizaveta" , "Alekseeva" )
26+ print ("1" ,person1 .get_name ()) # It should print "Elizaveta Alekseeva"
27+ print ("2" ,person1 .get_full_name ()) # It should print "Elizaveta Alekseeva"
28+ person1 .change_last_name ("Tyurina" ) # Changes the last name to "Tyurina"
29+ print ("3" ,person1 .get_name ())# It should print "Elizaveta Alekseeva" # I was wrong here because the child's last_name has been changed to "Tyurina".
30+ print ("4" ,person1 .get_full_name ())# I thought it would print "Elizaveta Alekseeva (née Tyurina)"
31+ # I was wrong here again because I misunderstood how last_name and previous_last_names work.
32+
33+ person2 = Parent ("Elizaveta" , "Alekseeva" )
34+ print ("5" ,person2 .get_name ()) # It should print "Elizaveta Alekseeva"
35+ print ("6" ,person2 .get_full_name ()) # Returns an error because Parent doesn't have a get_full_name() method.
36+ person2 .change_last_name ("Tyurina" ) # Returns an error because Parent doesn't have a change_last_name() method.
37+ print ("7" ,person2 .get_name ()) # It should print "Elizaveta Alekseeva"
38+ print (person2 .get_full_name ()) # returns an error again because Parent doesn't have a get_full_name() method.
0 commit comments