day15作业

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

    def change_speed(self):
        num = int(input('请输入速度变化'))
        if num < 0:
            if self.speed + num == 0:
                return '停车'

            else:
                print('减速')
                return '目前速度%d:' % (self.speed + num)
        elif num > 0:
            print('加速')
            return '目前速度%d:' % (self.speed + num)


a1 = Auto(4, 'white', 1000)

# print(a1.change_speed())


class CarAuto(Auto):
    def __init__(self, air_conditioner: bool, C_D: bool):
        super().__init__(4, 'white', 1000)
        self.air_conditioner = air_conditioner
        self.C_D = C_D

    def speed_change(self):  
        num = int(input('请输入速度变化:'))
        if num < 0:
            if num + self.speed == 0:
                return '停车'
            else:
                print('减速')
                return '目前速度%d' % (self.speed + num)
        elif num > 0:
            print('加速')
            return '目前速度%d' % (self.speed + num)


c1 = CarAuto(True, False)
print(c1.speed_change())

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

class Person:
    count = 0

    def __init__(self, name, gender, age=18):
        self.name = name
        self.age = age
        self.gender = gender
        Person.count += 1

    def __repr__(self):
        return ','.join(['<' + str(self.__dict__)[1:-1] + '>'])

p1 = Person('贝伦', '男')
print(Person.count)

p2 = Person('露西恩', '女')
print(Person.count)

p3 = Person('胡林', '男', 30)
print(Person.count)
print(p3.__repr__())
  1. 创建一个动物类,拥有属性:性别、年龄、颜色、类型 ,
    要求打印这个类的对象的时候以'/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/' 的形式来打印
class Animal:
    def __init__(self, gender, age, color, type):
        self.gender = gender
        self.age = age
        self.color = color
        self.type = type

    def __repr__(self):  # 重写 __repr__方法
        """'/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/'"""
        return '{}的对象:性别-{},年龄-{},颜色-{},类型-{}'\
            .format(self.__class__.__name__, self.gender, self.age, self.color, self.type)

class Cat(Animal):
    pass

class Dog(Animal):
    pass


a1 = Animal('雄', 5, 'yellow', 'tiger')
# a1.__repr__()
print(a1)

c1 = Cat('雄', 5, 'black', '黑猫警长')
# print(c1)
print(c1.__repr__())

d1 = Dog('雌', 3, 'white', '斑点狗')
print(d1)

class WriteError(Exception):
def str(self):
return '修改只读属性'

  1. 写一个圆类, 拥有属性半径、面积和周长;要求获取面积和周长的时候的时候可以根据半径的值把对应的值取到。但是给面积和周长赋值的时候,程序直接崩溃,并且提示改属性不能赋值
from math import pi
class WriteError(Exception):
    def __str__(self):
        return '修改只读属性'

class Circle:
    def __init__(self, radius:float):
        self.radius = radius
        self._area = radius**2*pi
        self._perimeter = 2*pi*radius

    @property
    def area(self):
        self._area = self.radius**2*pi
        return self._area
    @area.setter
    def area(self, value):
        raise WriteError

    @property
    def perimeter(self):
        self._perimeter = 2*self.radius*pi
        return self._perimeter
    @perimeter.setter
    def perimeter(self, value):
        raise WriteError

    def __repr__(self):
        return '<radius: {}, area: {}, perimeter: {}>'.format(self.radius,\
                self.area, self.perimeter)

c1 = Circle(5)
print(c1)

c2 = Circle(10)
print(c2)

# c1.perimeter = 10

# c1.area = 6
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • day15-作业 1. 建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性,并通过不同的构造方法...
    Octane阅读 140评论 0 1
  • 建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性,并通过不同的构造方法创建实例。至少要求 汽车...
    ______n___阅读 143评论 0 0
  • 建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性,并通过不同的构造方法创建实例。至少要求 汽车...
    浩子_唯一号阅读 143评论 0 1
  • 妞妞今天在电话里很认真的跟我说:“姨妈,我有一个问题需要你帮我解决。” 她说:“我现在家里有很多的玩具,但是我不知...
    cindy辛迪2017阅读 164评论 0 0
  • 实话生活 体悟人生 今天是2016年9月14日 天气晴天 温度25-35度 今天早上六点多起床 起来了以后 先按柔...
    木风恒阅读 168评论 0 0