#1. 建立一個汽車類Auto,包括輪胎個數(shù)焰轻,汽車顏色,車身重量昆雀,速度等屬性辱志,
# 并通過不同的構(gòu)造方法創(chuàng)建實例。至少要求 汽車能夠加速 減速 停車狞膘。
# 再定義一個小汽車類CarAuto 繼承Auto 并添加空調(diào)揩懒、CD屬性,
# 并且重新實現(xiàn)方法覆蓋加速挽封、減速的方法
class Auto():
def __init__(self,color,weight,speed=0,wheel_num=4):
self.wheel_num = wheel_num
self.color = color
self.weight = weight
self.speed = speed
def speed_up(self,a,t): #a加速度,t加速時間
while 1:
speed = self.speed + a * t
if speed>180:
break
return speed
def speed_down(self,a2,t2):
if self.speed != 0:
speed = self.speed - a2*t2
return speed
def park(self):
self.speed = 0
print('已停車!')
class CarAuto(Auto):
def __init__(self,air_conditioner,CD):
super().__init__('white','2t')
self.air_conditioner = air_conditioner
self.CD = CD
def speed_up(self,a,t):
while 1:
speed = self.speed + a * t
if speed>350:
break
return speed
def speed_down(self,a2,t2):
super().speed_down(a2,t2)
if self.speed != 0:
speed = self.speed-a2**2*t2
return speed
else:
self.park()
2. 創(chuàng)建一個Person類智亮,添加一個類字段用來統(tǒng)計Perosn類的對象的個數(shù)
class Person():
count = 0
def __init__(self):
Person.count += 1
@classmethod
def nums(cls):
return cls.count
p1 = Person()
p2 = Person()
print(Person.nums())
3. 創(chuàng)建一個動物類,擁有屬性:性別阔蛉、年齡、顏色癞埠、類型 状原,
class Animal():
def __str__(self):
return (r'/' + '%s的對象:性別%s 年齡%d 顏色%s 類型%s'+r'/' % (self.__class__,self.gender,self.age,self.color,self.type))
def __init__(self):
self.gender = input('請輸入動物的性別:')
self.age = input('請輸入動物的年齡:')
self.color = input('請輸入動物的顏色:')
self.type = input('請輸入動物的類型:')
animal1 = Animal()
print(animal1)
# 要#求打印這個類的對象的時候以'/XXX的對象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
4. 寫一個圓類聋呢, 擁有屬性半徑颠区、面積和周長削锰;
要求獲取面積和周長的時候的時候可以根據(jù)半徑的值把對應(yīng)的值取到毕莱。
但是給面積和周長賦值的時候器贩,程序直接崩潰,并且提示改屬性不能賦值
from math import pi
class InputError(Exception):
def __str__(self):
return '該屬性值不能賦值央串!'
class Circle():
def __init__(self, r):
self.r = r
self._area = 0
self._p =0
@property
def area(self):
self._area = pi * self.r ** 2
return self._area
@property
def p(self):
self._p = 2 * pi * self.r
return self._p
@area.setter
def area(self, x=None):
if x == None:
pass
else:
raise InputError
@p.setter
def p(self, x):
if x == None:
pass
else:
raise InputError
c1 = Circle(5)
c1.area = 2
print(c1.area)