day15_task_object
- 建立一個(gè)汽車類Auto,包括輪胎個(gè)數(shù)蔗崎,汽車顏色酵幕,車身重量,速度等屬性缓苛,并通過不同的構(gòu)造方法創(chuàng)建實(shí)例裙盾。至少要求 汽車能夠加速 減速 停車。 再定義一個(gè)小汽車類CarAuto 繼承Auto 并添加空調(diào)他嫡、CD屬性,并且重新實(shí)現(xiàn)方法覆蓋加速庐完、減速的方法
class Auto:
def __init__(self):
self.color = "red"
self.weight = "100KG"
self.speed = "60km/h"
self.num_tire = 4
def speed_down(self, time):
self.speed = str(int(self.speed[:-4])- int(time) * 15) + "km/h"
if int(self.speed[:-4]) >= 0:
return self.speed
else:
return 0
def speed_up(self, time):
self.speed = str(int(self.speed[:-4]) + int(time) * 15 )+ "km/h"
if self.speed <= 140:
return self.speed
else:
return 140
@staticmethod
def shut_down(cls):
print("此時(shí)速度為0")
class CarAuto(Auto):
def __init__(self):
super().__init__()
self.air_conditioning = "開空調(diào)"
self.music = "Play CD"
def speed_down(self, time):
self.speed -= int(time) * 10
if self.speed >= 0:
return self.speed
else:
return 0
def speed_up(self, time):
self.speed += int(time) * 10
if self.speed <= 160:
return self.speed
else:
return 160
- 創(chuàng)建一個(gè)Person類钢属,添加一個(gè)類字段用來統(tǒng)計(jì)Perosn類的對(duì)象的個(gè)數(shù)
class Person:
numbers = 0
def __init__(self, name):
self.name = name
Person.numbers += 1
@classmethod
def number(cls):
return cls.numbers
p1 = Person('張三')
p2 = Person('李四')
p3 = Person('陳武')
print(Person.numbers,Person.number()) # 3 3
-
創(chuàng)建一個(gè)動(dòng)物類,擁有屬性:性別门躯、年齡淆党、顏色、類型 讶凉,
要求打印這個(gè)類的對(duì)象的時(shí)候以'/XXX的對(duì)象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
class Animal:
def __init__(self,brand,gender,age,color):
self.brand = brand
self.gender = gender
self.age = age
self.color = color
def __repr__(self):
return "/" + Animal.__name__ + "的對(duì)象:" +str(self.__dict__)[1:-1].replace(":","-") + "/"
print(Animal("中華田園犬", "公", 2, "white"))
#/Animal的對(duì)象:'brand'- '中華田園犬', 'gender'- '公', 'age'- 2, 'color'- 'white'/
- 寫一個(gè)圓類染乌, 擁有屬性半徑、面積和周長懂讯;要求獲取面積和周長的時(shí)候的時(shí)候可以根據(jù)半徑的值把對(duì)應(yīng)的值取到荷憋。但是給面積和周長賦值的時(shí)候,程序直接崩潰褐望,并且提示改屬性不能賦值
import math
class ReadOnlyError(Exception):
def __str__(self):
return '改屬性不能賦值'
class Circle:
def __init__(self, radius):
self.radius = radius
self._area = None
self._perimeter = None
@property
def area(self):
return math.pi * self.radius ** 2
@area.setter
def area(self,value):
raise ReadOnlyError
@property
def perimeter(self):
return 2 * math.pi * self.radius
@perimeter.setter
def perimeter(self, value):
raise ReadOnlyError
rectangle1 = Circle(10)
print(rectangle1.area,rectangle1.perimeter)
rectangle1.radius = 20
print(rectangle1.area,rectangle1.perimeter)
rectangle1.perimeter = 300
-
(嘗試)寫一個(gè)類勒庄,其功能是:1.解析指定的歌詞文件的內(nèi)容 2.按時(shí)間顯示歌詞 提示:歌詞文件的內(nèi)容一般是按下面的格式進(jìn)行存儲(chǔ)的。歌詞前面對(duì)應(yīng)的是時(shí)間瘫里,在對(duì)應(yīng)的時(shí)間點(diǎn)可以顯示對(duì)應(yīng)的歌詞
[00:00.20]藍(lán)蓮花 [00:00.80]沒有什么能夠阻擋 [00:06.53]你對(duì)自由地向往 [00:11.59]天馬行空的生涯 [00:16.53]你的心了無牽掛 [02:11.27][01:50.22][00:21.95]穿過幽暗地歲月 [02:16.51][01:55.46][00:26.83]也曾感到彷徨 [02:21.81][02:00.60][00:32.30]當(dāng)你低頭地瞬間 [02:26.79][02:05.72][00:37.16]才發(fā)覺腳下的路 [02:32.17][00:42.69]心中那自由地世界 [02:37.20][00:47.58]如此的清澈高遠(yuǎn) [02:42.32][00:52.72]盛開著永不凋零 [02:47.83][00:57.47]藍(lán)蓮花