python
1.建立一個汽車類Auto,包括輪胎個數(shù)憎妙,汽車顏色库正,車身重量,速度等屬性厘唾,
并通過不同的構(gòu)造方法創(chuàng)建實例褥符。至少要求 汽車能夠加速 減速 停車。
再定義一個小汽車類CarAuto 繼承Auto 并添加空調(diào)抚垃、CD屬性喷楣,
并且重新實現(xiàn)方法覆蓋加速、減速的方法
from math import pi
class Auto:
def __init__(self, color='白色', weight=50, speed=0):
# color='紅色', weight=100, speed=10
self.tyre_count = 4
self.color = color
self.weight = weight
self.speed = speed
self.__max_speed = 300
def speed_up(self, value):
"""加速"""
new_speed = self.speed + value
if new_speed > self.__max_speed:
self.speed = self.__max_speed
else:
self.speed = new_speed
def speed_down(self, value):
"""減速"""
new_speed = self.speed - value
if new_speed < 0:
self.speed = 0
else:
self.speed = new_speed
def stop(self):
"""停車"""
self.speed = 0
class CarAuto(Auto):
def __init__(self, color='', weight=100, speed=10):
# color='紅色', weight=100, speed=10
super().__init__(color, weight, speed) # super().__init__('紅色', 100, 10)
self.CD = ''
self.air_conditioner = '格力'
c1 = CarAuto('紅色')
print(c1.__dict__)
3.創(chuàng)建一個動物類鹤树,擁有屬性:性別抡蛙、年齡、顏色魂迄、類型 ,
要求打印這個類的對象的時候以'/XXX的對象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
class Animal:
def __init__(self, gender='公', age=1, color='黑色', type='爬行'):
self.gender = gender
self.age = age
self.color = color
self.type = type
def __repr__(self):
return '/%s的對象: 性別-%s 年齡-%d 顏色-%s 類型-%s/' % \
(self.__class__.__name__, self.gender, self.age, self.color, self.type)
class Dog(Animal):
pass
an1 = Animal()
print(an1)
dog1 = Dog()
print(dog1)
4.寫一個圓類惋耙, 擁有屬性半徑捣炬、面積和周長;要求獲取面積和周長的時候的時候可以根據(jù)半徑的值把對應(yīng)的值取到绽榛。
但是給面積和周長賦值的時候湿酸,程序直接崩潰,并且提示改屬性不能賦值
class ReadOnlyError(Exception):
def __str__(self):
return 'Modify the read-only property'
class Circle:
def __init__(self, r):
self.r = r
self._perimeter = 0
self._area = 0
# perimeter
@property
def perimeter(self):
return self.r*pi*2
@perimeter.setter
def perimeter(self, value):
raise ReadOnlyError
# area
@property
def area(self):
return pi*self.r**2
@area.setter
def area(self, value):
raise ReadOnlyError
c1 = Circle(10)
print(c1.area, c1.perimeter)
c1.r = 3
print(c1.area, c1.perimeter)