# 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
# 写一个扑克类, 要求拥有发牌和洗牌的功能(具体的属性和其他功能自己根据实际情况发挥)
网友评论