Python 练习题 类

练习题

定义一个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()) #张三   女    反正成绩有点不太理想啦
                                           #通过调用的方法来间接调用属性
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值