Discuss / Python / 作业

作业

Topic source

EddieLau_

#1 Created at ... [Delete] [Delete and Lock User]
class Student(object):
    def __init__(self, name, gender):
        self.name = name
        self.set_gender(gender)

    def get_gender(self) :
        return self.__gender

    def set_gender(self, gender) :
        if isinstance(gender, str) == False : raise ValueError('参数类型错误!')

        gender = gender.lower()
        if gender in ('male', 'female') :
            self.__gender = gender
        else :
            raise GenderError()


class GenderError(Exception) :
    '''自定义错误异常'''

    def __init__(self) :
        pass
    def __str__(self):
        return '输入的性别错误! 只允许输入"male"或"female"(不区分大小写)'

# 测试:

bart = Student('Bart', 'male')
if bart.get_gender() != 'male':
    print('测试失败!')
else:
    try:
        #bart.set_gender(123456) # 测试异常捕获 - 参数类型
        #bart.set_gender('foo') # 测试异常捕获 - 非指定值

        bart.set_gender('female')
        if bart.get_gender() != 'female':
            print('测试失败!')
        else:
            print('测试成功!')

    except GenderError as e:
        print(e)

    except ValueError as e:
        print(e)



  • 1

Reply