day14作业

  1. 建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性,并通过不同的构造方法创建实例。至少要求 汽车能够加速 减速 停车。 再定义一个小汽车类CarAuto 继承Auto 并添加空调、CD属性,并且重新实现方法覆盖加速、减速的方法
class Auto:
    def __init__(self, color, weight, speed, tyre=4):
        self.tyre = tyre
        self.color = color
        self.weight = weight
        self.speed = speed

    def speed_up(self):
        self.speed += 50
        return self.speed

    def speed_down(self):
        self.speed -= 50
        return self.speed

    def stop(self):
        self.speed = 0
        return self.speed


class CarAuto(Auto):
    def __init__(self, air, cd, color, weight, speed, tyre=4):
        super().__init__(color, weight, speed, tyre)
        self.air = air
        self.cd = cd

    def speed_up(self):
        self.speed += 30
        return self.speed

    def speed_down(self):
        self.speed -= 30
        return self.speed


car1 = Auto('red', 1.2, 100)
car2 = Auto('bule', 2.5, 80, tyre=6)
car3 = CarAuto('gree', 'jj', 'white', 1.5, 160)
car4 = CarAuto('haier', 'jay', 'black', 2.0, 180, tyre=6)
print(car3.speed_up())
print(car4.__dict__)
  1. 创建一个Person类,添加一个类字段用来统计Perosn类的对象的个数
class Person:
    count = 0
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    @classmethod
    def __count__(cls):
        cls.count += 1
        Person.count = cls.count
        return cls.count
  1. 创建一个动物类,拥有属性:性别、年龄、颜色、类型 ,

    要求打印这个类的对象的时候以'/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/' 的形式来打印

  2. 写一个圆类, 拥有属性半径、面积和周长;要求获取面积和周长的时候的时候可以根据半径的值把对应的值取到。但是给面积和周长赋值的时候,程序直接崩溃,并且提示改属性不能赋值

class AttrError(Exception):
    def __str__(self):
        return '改属性不能赋值'

class Circle:
    def __init__(self, radius=0, area=0, perimeter=0):
        self.radius = radius
        self._area = area
        self._perimeter = perimeter

    @property
    def area(self):
        return 3.14 * self.radius ** 2

    @property
    def perimeter(self):
        return 2 * 3.14 * self.radius

    @area.setter
    def area(self, x):
        raise AttrError

    @perimeter.setter
    def perimeter(self, x):
        raise AttrError


cir1 = Circle()
cir1.radius = 5
area1 = cir1.area
print(area1)
# cir1.perimeter = 100  __main__.AttrError: 改属性不能赋值
  1. 面向对象学生管理系统(挣扎)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作业0.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]方法: a. 获取学生...
    逆流而上_2eb6阅读 1,463评论 0 0
  • 0.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]方法: a. 获取学生的姓...
    佐手牵鼬手_89a9阅读 1,688评论 0 0
  • 0.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]方法: a. 获取学生的姓...
    Deathfeeling阅读 1,882评论 4 2
  • 阿尔发蛋是一个人工智能机器人。是我跟孩爹商量好,送给儿子的生日礼物,也算是新年礼物。儿子收到蛋,开心的不得了...
    张志成娘阅读 3,564评论 1 5
  • 铺天盖地的杜鹃花开满了山谷,我手握师傅传我的冰凌剑,站在山顶朝着远方大喊“十六年了,我终于可以下山了”。 集市是热...
    我尨阅读 2,118评论 2 3

友情链接更多精彩内容