day16 面向对象作业

0.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]
方法:
a. 获取学生的姓名:getname()
b. 获取学生的年龄:getage()
c. 返回3门科目中最高的分数。get_course()

class Student(object):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self._score = score
        for i in self._score:
            if not isinstance(self._score[i], int):
                raise ValueError

    def getname(self):
        return self.name

    def getage(self):
        return self.age

    @property
    def score(self):
        return self._score

    @score.setter
    def score(self, value):
        for i in value:
            if not isinstance(value[i], int):
                raise ValueError
            self._age = value

    def get_course(self):
        max = self._score['语文']
        for i in self._score:
            if max < self._score[i]:
                max = self._score[i]
        return max


stu1 = Student('AA', 17, {'语文': 23, '数学': 88, '英语': 100})
print(stu1.score)
stu1.score = {'语文': 23, '数学': 88, '英语': 100}
print(stu1.score)
print(stu1.get_course())

1.建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等成员变量,并通过不同的构造方法创建实例。至少要求 汽车能够加速 减速 停车。
再定义一个小汽车类CarAuto 继承Auto 并添加空调、CD等成员变量 覆盖加速 减速的方法

class Auto(object):
    def __init__(self, tyre, weight=1, speed=100):
        self.tyre = tyre
        self.color = '蓝色'
        self.weight = weight
        self.speed = speed
    def speedup(self):
        self.speed+=1
        print('加速了1')
    def speeddown(self):
        self.speed-=1
        print('减速了1')
    def stop(self):
        self.speed=0
        print('停车了!')

class CarAuto(Auto):
    def __init__(self,tyre, weight, speed,conditioner,CD):
        super().__init__(tyre, weight, speed)
        self.conditioner = conditioner
        self.CD = CD
    def speedup(self):
        self.speed+=10
        print('加速了10')
    def speeddown(self):
        self.speed-=10
        print('加速了10')


C1 =CarAuto(4,2,100,'中央空调','蓝莲花')
print(C1.speeddown())

2.创建一个名为User 的类,其中包含属性firstname 和lastname ,还有用户简介通常会存储的其他几个属性。
在类User 中定义一个名 为describeuser() 的方法,它打印用户信息摘要;再定义一个名为greetuser() 的方法,它向用户发出个性化的问候。

class User:
    def __init__(self,firstname,synopsis,lastname=''):
        self.firstname = firstname
        self.lastname =lastname
        self.synopsis = synopsis
    def describeuser(self):
        return (self.synopsis['name']+self.synopsis['age'])
    def greetuser(self):
        return '%s,您好!'%self.synopsis['name']
user1 = User('X',{'name':'小明','age':16},'A')
print(user1.greetuser())

3.创建一个Person类,添加一个类字段用来统计Perosn类的对象的个数

class Person(object):
    num = 0
    def __init__(self,name='zhangsan'):
        self.name = name
        Person.num+=1
p1 =Person()
P2 =Person()
print(p1.name,Person.num)

你可能感兴趣的:(day16 面向对象作业)