2019-11-26作业

# 1.建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性,并通过不同的构造方法创建实例。至少要求 汽车能够加速 减速 停车。


class Auto:
    def __init__(self, car_color, body_weight, speed, license_plate, number_of_tyres=4, ):
        self.number_of_tyres = number_of_tyres
        self.car_color = car_color
        self.body_weight = body_weight
        self.speed = speed
        self.license_plate = license_plate

    def speed_up(self):
        self.speed += 10
        print("%s加速" % self.license_plate)

    def slow_down(self):
        self.speed -= 10
        print("%s减速" % self.license_plate)

    def parking(self):
        self.speed = 0
        print("%s停车" % self.license_plate)


#  再定义一个小汽车类CarAuto 继承Auto 并添加空调、CD属性,并且重新实现方法覆盖加速、减速的方法

class CarAuto(Auto):
    def __init__(self, number_of_tyres, car_color, body_weight, speed, air_conditioner, cd_play):
        super().__init__(number_of_tyres, car_color, body_weight, speed)
        self.air_conditioner = air_conditioner
        self.cd_play = cd_play

    def speed_up(self):
        self.speed += 10
        print("%s加速" % self.license_plate)

    def slow_down(self):
        self.speed -= 10
        print("%s减速" % self.license_plate)


# 创建一个Person类,添加一个类字段用来统计Perosn类的对象的个数
class Person:
    count = 0

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


p1 = Person('小明')
p2 = Person('小小明')
p3 = Person("大明")
print(Person.count)


# 创建一个动物类,拥有属性:性别、年龄、颜色、类型 ,
# 要求打印这个类的对象的时候以'/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/' 的形式来打印
class Animal:
    def __init__(self, name, color, kind, gender='雌', age=2):
        self.color = color
        self.kind = kind
        self.gender = gender
        self.age = age
        self.name = name

    def __repr__(self):
        return '{}的对象:名字-{}颜色-{}类型-{}性别-{}年龄{}'.format(Animal, self.name, self.color, self.kind, self.gender, self.age)


animal1 = Animal('小明', "红色", "猫类")
print(animal1)


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

    def __init__(self, r):
        self.r = r
        self._area = 0
        self._perimeter = 0

    @property
    def area(self):
        return Circle.pi * self.r * self.r

    @property
    def perimeter(self):
        return Circle.pi * self.r * 2

    @area.setter
    def area(self, value):
        print('不能给area属性赋值:')
        raise ValueError

    @perimeter.setter
    def perimeter(self, value):
        print('不能给perimeter赋值')
        raise ValueError


# 写一个扑克类, 要求拥有发牌和洗牌的功能(具体的属性和其他功能自己根据实际情况发挥)



你可能感兴趣的:(2019-11-26作业)