1
+ class Person (object ):
2
+ def __init__ (self , name ):
3
+ #create a person with name name
4
+ self .name = name
5
+ try :
6
+ firstBlank = name .rindex (' ' )
7
+ self .lastName = name [firstBlank + 1 :]
8
+ except :
9
+ self .lastName = name
10
+ self .age = None
11
+ def getLastName (self ):
12
+ #return self's last name
13
+ return self .lastName
14
+ def setAge (self , age ):
15
+ #assumes age is an int greater than 0
16
+ #sets self's age to age (in years)
17
+ self .age = age
18
+ def getAge (self ):
19
+ #assumes that self's age has been set
20
+ #returns self's current age in years
21
+ if self .age == None :
22
+ raise ValueError
23
+ return self .age
24
+ def __lt__ (self , other ):
25
+ #return True if self's name is lexicographically less
26
+ #than other's name, and False otherwise
27
+ if self .lastName == other .lastName :
28
+ return self .name < other .name
29
+ return self .lastName < other .lastName
30
+ def __str__ (self ):
31
+ #return self's name
32
+ return self .name
33
+
34
+ class USResident (Person ):
35
+ """
36
+ A Person who resides in the US.
37
+ """
38
+ def __init__ (self , name , status ):
39
+ """
40
+ Initializes a Person object. A USResident object inherits
41
+ from Person and has one additional attribute:
42
+ status: a string, one of "citizen", "legal_resident", "illegal_resident"
43
+ Raises a ValueError if status is not one of those 3 strings
44
+ """
45
+ Person .__init__ (self , name )
46
+ statuses = ["citizen" , "legal_resident" , "illegal_resident" ]
47
+ if status in statuses :
48
+ self .status = status
49
+ else :
50
+ raise ValueError
51
+
52
+ def getStatus (self ):
53
+ """
54
+ Returns the status
55
+ """
56
+ # Write your code here
57
+ return self .status
58
+
59
+ a = USResident ('Tim Beaver' , 'citizen' )
60
+ print (a .getStatus ())
61
+ b = USResident ('Tim Horton' , 'illegal_resident' )
62
+ print (b .getStatus ())
0 commit comments