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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,845评论 6 13
  • 【练习题】01.类的成员变量 猜数字游戏一个类A有一个成员变量v有一个初值100。定义一个类对A类的成员变量v进行...
    innerClass阅读 64,828评论 8 64
  • 写在之前 因为简书字数限制,完整版地址:https://www.zybuluo.com/hainingwyx/no...
    hainingwyx阅读 14,729评论 0 41
  • 我希望我是这样的一个姑娘 兼有大女人的成熟与小女人的天真 热衷于艺术 或舞、或歌、或画、或摄、或雕 可以去星巴克享...
    安生落意阅读 1,859评论 0 1