作业 day16

""" __author__ == YSK """

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


class Auto:
    def __init__(self):
        self.wheel = '四轮'
        self.color = '黑色'
        self.weight = '1.6吨'
        self.speed = '200码'

    def add_speed(self):
        print('车类加速')

    @classmethod
    def dece(cls):
        print('车类减速')

    @staticmethod
    def stop():
        print('车类停车')


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

    def add_speed(self):
        print('小车加速')

    @classmethod
    def dece(cls):
        print('小车减速')


car1 = CarAuto('空调', '索尼')
car1.add_speed()
car1.dece()
print(car1.color)
print(car1.wheel)
print(car1.air_Con)
print(car1.CD)

print('======================================')
"""
2.创建一个Person类,添加一个类字段用来统计Person类的对象的个数
"""


class Person:
    num = 0

    def __init__(self):
        Person.num += 1


p1 = Person()
p2 = Person()
print(Person.num)
print('======================================')

"""
3.创建一个动物类,拥有属性:性别、年龄、颜色、类型 ,
要求打印这个类的对象的时候
以'/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):
        return '%s的对象: 性别-%s 年龄-%s 颜色-%s 类型-%s' % \
               (self.__class__, self.gender, self.age, self.color, self.type)


cat1 = Animal('母', '3', '白', '美短')
print(cat1.__repr__())

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


class Circle:
    pi = 3.14

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

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

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

    @area.setter
    def area(self, value):
        if value == Circle.pi * self.r ** 2:
            self._area = value
        else:
            raise ValueError

    @perimeter.setter
    def perimeter(self, value):
        if value == Circle.pi * self.r * 2:
            self._perimeter = value
        else:
            raise ValueError


c1 = Circle(5)
print(c1.area)
print(c1.perimeter)
# c1.area=100
# c1.perimeter=100
print('======================================')

"""
5.写一个扑克类, 要求拥有发牌和洗牌的功能
    (具体的属性和其他功能自己根据实际情况发挥)
"""
class Poker:
    def __init__(self):
        pass

    def send(self):
        pass

    def wash(self):
        pass

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