Python 练习题 类
程序员文章站
2022-05-19 14:17:07
...
练习题
定义一个Student类,具有name,sex,score属性。并使用这个类实例化几个不同的对象,检测下述要求是否达成:
1.name为公有属性,sex和score为私有属性。
2.构造函数的参数进行进行检查,如果不合理(类型不合理或者取值不合理),请拒绝生成对象。提示,需要用到isinstance和raise。
3.给两个私有属性添加getter和setter方法。
4.在成绩(score)的getter方法中,如果成绩低于60分,就给他留点面子,返回字符串“反正有点不太理想啦“或者类似的语句。
5.在性别(sex)和成绩(score)的setter方法,进行参数检测,不合理的取值打印出错误信息,最好不要用raise中断程序,简单的拒绝修改就好了。
class Student(object):
def __init__(self,name,sex,score):
if not (isinstance(name,str) and isinstance(sex,str) and 0<score<=100):
raise TypeError('类型错误')
self.name=name
self.__sex=sex
self.__score=score #在前面加两个下划线是访问限制的标志
# 这时候在进行创建对象并调用类属性的时候,对象是无法获得sex和score的赋值权限的。
def get_sex(self): #来获取性别
return self.__sex
def get_score(self): #来获取成绩
if self.__score<60:
return '反正成绩有点不太理想啦'
else:
return self.__score
def set_sex(self,sex): # 设置性别
if not (isinstance(sex,str)):
return TypeError('类型错误')
self.__sex = sex
def set_score(self,score):
if not isinstance(score,int):
return TypeError('类型错误')
self.__score = score
s=Student('张三','男',30)
s.set_sex('女')
print(s.name,s.get_sex(),s.get_score()) #张三 女 反正成绩有点不太理想啦
#通过调用的方法来间接调用属性