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 : # get name is a method of class parent
7+ return f"{ self .first_name } { self .last_name } "
8+
9+
10+ class Child (Parent ): #childclass of parent
11+ 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
14+
15+ 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
18+
19+ def get_full_name (self ) -> str :
20+ 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
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 (person1 .get_name ())
27+ print (person1 .get_full_name ())
28+ person1 .change_last_name ("Tyurina" )
29+ print (person1 .get_name ())
30+ print (person1 .get_full_name ())
31+
32+ person2 = Parent ("Elizaveta" , "Alekseeva" )
33+ print (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