根据模板文件中的规范类进行分类

时间:2015-10-25 04:28:32

标签: python

在此问题中,您将根据模板文件usresident.py中的规范实现一个类。该文件包含Person类和USResident类(Person的子类)。已经为您实现了人员,您必须实施两种USResident方法。

例如,以下代码:

a = USResident('Tim Beaver', 'citizen')
print a.getStatus()
b = USResident('Tim Horton', 'non-resident')

将打印出来:

公民

将显示在特定行

处引发了ValueError

不要修改人员类别的实施

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`

2 个答案:

答案 0 :(得分:1)

我同意这篇关于MCVE的帖子的回复。

关于问题的答案(让评分者接受你的答案),请记住,当继承(子)class Person(孩子)class USResident时,(父母){{1需要使用:

在(child)class Person中初始化

class USResident

所以给我一个正确答案的代码是:

Person.__init__(self, name)

期末考试已结束,但您可以在课程的侧边栏中查看期末考试代码评分,以查看此代码。

我开始这个课程的时间很晚,所以我得到了这个问题,我也很困惑,为什么我也没有得到“正确”的输出(最多一个小时!)。

对于那些不在课程中的人,这是一张图片:

correct output for final exam problem 5

对于那些感兴趣的人来说,课程是“使用Python的计算机科学和编程简介”,或6.00.1x,来自edX.org

不幸的是,只有注册人才能访问代码分级器。

干杯!

答案 1 :(得分:0)

实际上它非常简单,只是为了测试你是否可以在课堂上使用常量。

就像某件事:STATUS = ("c", "i", "l")然后如果条件失败则提升ValueError