【Python练习】task-09 类的练习

class Student:
    __name=''
    __sex=''
    __score=0
    
    def __init__(self,name,sex,score):
        self.setName(name)
        self.setSex(sex)#self.__sex=sex
        self.setScore(score)
        
    def setName(self,name):
        self.__name=name
    def setSex(self,sex):
        if sex=='male' or sex=='female':
            self.__sex=sex
        else:
            print('errror')
    def setScore(self,score):
        self.__score=score
        
    def getName(self):
        return self.__name
    def getSex(self):
        if self.__sex=='male':
            return '男'
        return '女'
    def getScore(self):
        return self.__score
    
    def __str__(self):
        return self.getName()+" "+self.getSex()+' '+str(self.getScore())
    def __add__(self,s):
        return self.getScore()+s.getScore()
s1=Student('tom','male',90)
s2=Student('may','female',94)
s3=Student('max','female',99)
s1.setSex('avdcd')
print(s1)
print(s2.getScore()+s1.getScore())

# print(s1+s2+s3)

1)根据下面的要求实现“人”类Person:
          Person类的属性:
    name  姓名 ,私有属性(注意私有属性的设置方式)
    sex    性别  ,私有属性
          Person类的方法:
    构造方法 ,有参数(self,name, sex) 
    get_name(self) 获得人的姓名
    get_sex(self) 获得人的性别,返回’男’,或‘女’
    set_name(self,name) 设置姓名
    set_sex(self,sex) 设置性别,只能接受’m’,’w’或’M’,’W’,表示男,女。
    __str__(self)方法, 返回人的姓名和性别
(2)继承上题中的Person类,派生学生类Student,要求如下:
          Student类的成员变量:
    score 表示学生的成绩(整数类型),私有属性
          Student类的方法成员:
    构造方法 ,参数(self,name, sex,score) ,前两个参数调用父类方法设置
    getScore (self) 获得学生的成绩
setScore (self,score) 获得学生的成绩,验证成绩在0-100之间有效
    __str__(self)方法, 返回人的姓名和性别和成绩
(3)根据你上面的设计,若有语句:
s0=Person(“wang”, “m”);
print(s0)
s1=Student(“lee”, “W”,90);
print(s1.__str__())
请写出上面程序段的运行结果。

class Person:
    __name = ''
    __gender = ''
    
    def __init__(self,name,gender):
        self.set_name(name)
        self.set_gender(gender)
    def get_name(self):
        return self.__name
    def set_name(self,name):
        self.__name = name
    def get_gender(self):
        if self.__gender == 'm' or self.__gender == 'M':
            return '男'
        return '女'
    def set_gender(self, gender):
        if gender == 'm' or gender == 'M':
            self.__gender = gender
        elif gender == 'w' or gender == 'W':
            self.__gender = gender
        else:
            print('性别只能输入m,M,w,W')
            self.__gender = ''
    def __str__(self):
        return self.get_name()+" "+self.get_gender()
    
class Student(Person):
    __score = 0
    
    def __init__(self,name,gender,score):
        super().__init__(name,gender)
        self.set_score(score)
    def get_score(self):
        return self.__score
    def set_score(self,score):
        if 0<=score<=100:
            self.__score = score
        else:
            print("分数只能介于0-100")
            self.__score = 0
    def __str__(self):
        return self.get_name()+" "+self.get_gender()+' '+str(self.get_score())
    
s0=Person('wang', 'm');
print(s0)
s1=Student('lee', "W",90);
print(s1.__str__())

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天的命名词

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值