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__())