day15_作业

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

    def __init__(self, color='白色', weight =50,speed=0):
        self.whale = name
        self.color = color 
        self.weight = weight 
        self.speed= speed
        self.__max_speed = 300

    def speed_up(self):
        print('加速')

    def speed_down(self):
        print('减速')

class CarAuto(Auto):
    def __init__(self, ac, CD):
        self.ac = ac
        self.CD = CD
        super().__init__()

    def speed_up(self):
        print('小汽车加速')

    def speed_down(self):
        print('小汽车加速')

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

#创建对象时一定会调用init方法
class Person:
    cnt = 0
    def __init__(self, name):
        self.name = name
        Person.cnt += 1
p1 = Person('rachel')
p2 = Person('monica')
print(Person.cnt)

创建一个动物类,拥有属性:性别、年龄、颜色、类型 , 要求打印这个类的对象的时候以'/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/' 的形式来打印

class Animal:
    def __init__(self,color,species,age=0,sex = 'female'):
        self.color = color
        self.species = species
        self.age = age
        self.sex = sex
    def __repr__(self):
       # return '/%s的对象:%s/' % (self.__class__,str(self.__dict__)[1:-1])
        return '/%s的对象::性别%-s 年龄-%d 颜色-%s 类型-%s/' % (self.__class__.name,self.gender,self.age,self.color,self.type)
print(a1.__repr__())

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

class WriteError(Exception):
    def __str__(self):
        return '尝试修改一个只读的属性!'

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

    @property
    def perimeter(self):
        return self.perimeter

    @perimeter.setter
    def perimeter(self, value):
        self._radius = value
        self._perimeter = self.radius * 2 * 3.14
        self._area = 3.14*value**2

    @property
    def perimeter(self):
        return self._perimeter

    @perimeter.setter
    def perimeter(self, value):
        print('周长不能直接改修!')
        raise WriteError

    # 4.area
    @property
    def area(self):
        return self._area

    @area.setter
    def area(self, value):
        print('面积不能直接改修!')
        raise WriteError

c1 = Circle(3)
c1.perimeter = 10
print(c1.perimeter, c1.area)
print(c1.perimeter, c1.area)
  1. (尝试)写一个类,其功能是:1.解析指定的歌词文件的内容2.按时间显示歌词 提示:歌词文件的内容一般是按下面的格式进行存储的。 歌词前面对应的是时间,在对应的时间点可以显示对应的歌词

你可能感兴趣的:(day15_作业)