在此问题中,您将根据模板文件usresident.py中的规范实现一个类。该文件包含Person类和USResident类(Person的子类)。已经为您实现了人员,您必须实施两种USResident方法。
例如,以下代码:
a = USResident('Tim Beaver', 'citizen')
print a.getStatus()
b = USResident('Tim Horton', 'non-resident')
将打印出来:
公民
class Person(object):
def __init__(self, name):
#create a person with name name
self.name = name
try:
firstBlank = name.rindex(' ')
self.lastName = name[firstBlank+1:]
except:
self.lastName = name
self.age = None
def getLastName(self):
#return self's last name
return self.lastName
def setAge(self, age):
#assumes age is an int greater than 0
#sets self's age to age (in years)
self.age = age
def getAge(self):
#assumes that self's age has been set
#returns self's current age in years
if self.age == None:
raise ValueError
return self.age
def __lt__(self, other):
#return True if self's name is lexicographically less
#than other's name, and False otherwise
if self.lastName == other.lastName:
return self.name < other.name
return self.lastName < other.lastName
def __str__(self):
#return self's name
return self.name
class USResident(Person):
"""
A Person who resides in the US.
"""
def __init__(self, name, status):
"""
Initializes a Person object. A USResident object inherits
from Person and has one additional attribute:
status: a string, one of "citizen", "legal_resident", "illegal_resident"
Raises a ValueError if status is not one of those 3 strings
"""
# Write your code here
def getStatus(self):
"""
Returns the status
"""
# Write your code here`enter code here`
答案 0 :(得分:1)
我同意这篇关于MCVE的帖子的回复。
关于问题的答案(让评分者接受你的答案),请记住,当继承(子)class Person
(孩子)class USResident
时,(父母){{1需要使用:
class Person
中初始化
class USResident
所以给我一个正确答案的代码是:
Person.__init__(self, name)
期末考试已结束,但您可以在课程的侧边栏中查看期末考试代码评分,以查看此代码。
我开始这个课程的时间很晚,所以我得到了这个问题,我也很困惑,为什么我也没有得到“正确”的输出(最多一个小时!)。
对于那些不在课程中的人,这是一张图片:
对于那些感兴趣的人来说,课程是“使用Python的计算机科学和编程简介”,或6.00.1x,来自edX.org。
不幸的是,只有注册人才能访问代码分级器。
干杯!
答案 1 :(得分:0)
实际上它非常简单,只是为了测试你是否可以在课堂上使用常量。
就像某件事:STATUS = ("c", "i", "l")
然后如果条件失败则提升ValueError
。