class Student(): def __init__(self, name: str, score: int = 0, gender='unknown'): self.__name = name self.__score = score self.__gender = gender def print_score(self): print('Name:%s Score:%s' % (self.__name, self.__score)) def get_name(self): return self.__name def get_score(self): return self.__score def set_score(self, score: int): if 0 <= score < 100: self.__score = score else: raise ValueError('不合法的分数数值') def get_gender(self): return self.__gender def set_gender(self, gender): if not isinstance(gender, str): raise TypeError('gender must be str type') if gender in ('male', 'female', 'unknown'): self.__gender = gender else: raise ValueError('gender value Error')student = Student('Bob')student2 = Student('Domi', score=88)student.print_score()print(student.__getattribute__('_' + student.__class__.__name__ + '__name'))print(student._Student__name)student.__setattr__('_' + student.__class__.__name__ + '__name', 'Bill')student.print_score()print('----------------------------------')try: student.set_score(123)except ValueError as e: print(e)try: student.set_score('12')except TypeError as e: print(e)student.__setattr__('_' + student.__class__.__name__ + '__score', 101)student.print_score()student.__setattr__('_' + student.__class__.__name__ + '__score', 'ddd')student.print_score()student._Student__score = 'ams'student.print_score()try: print(student.__score)except Exception as e: print(e)student.__score = 'emmmmm'print(student.__score)print(student.get_score())print(student.__getattribute__('__score'))bart = Student('Bart', gender='male')if bart.get_gender() != 'male': print('测试失败!')else: bart.set_gender('female') if bart.get_gender() != 'female': print('测试失败!') else: print('测试成功!')
Sign in to make a reply
蝶殇/yl待月