1. 建立一個(gè)汽車類Auto,包括輪胎個(gè)數(shù),汽車顏色,車身重量,速度等屬性,并通過(guò)不同的構(gòu)造方法創(chuàng)建實(shí)例。至少要求汽車能夠加速減速停車。 再定義一個(gè)小汽車類CarAuto繼承Auto并添加空調(diào)、CD屬性,并且重新實(shí)現(xiàn)方法覆蓋加速、減速的方法
class ReadError(Exception):
"""聲明只讀錯(cuò)誤"""
def __str__(self):
return '該值不能賦值'
class Auto:
"""車"""
def __init__(self, color, weight: float, tyre_nums=4):
self._color = color
self._weight = weight
self._tyre_nums = tyre_nums
self.speed = 0
def accelerate(self):
"""加速"""
self.speed += 10
def slow_down(self):
"""減速"""
while True:
if self.speed - 10 >= 0:
self.speed -= 10
break
else:
self.speed = 0
def stop(self):
"""停車"""
while True:
if self.speed != 0:
self.slow_down()
@property
def color(self):
"""為保證該屬性不可修改"""
return self._color
@color.setter
def color(self, value):
"""保證該屬性不可修改"""
raise ReadError
@property
def weight(self):
"""為保證該屬性不可修改"""
return self._weight
@weight.setter
def weight(self, value):
"""保證該屬性不可修改"""
raise ReadError
@property
def tyre_nums(self):
"""為保證該屬性不可修改"""
return self._tyre_nums
@tyre_nums.setter
def tyre_nums(self, value):
"""保證該屬性不可修改"""
raise ReadError
class CarAuto(Auto):
"""轎車"""
def __init__(self, color, weight, good_air=0, cd=0, speed=0):
super().__init__(color, weight, speed)
self._good_air = good_air
self._cd = cd
@property
def good_air(self):
"""改變屬性對(duì)應(yīng)值的意義"""
if self._good_air == 1:
return '有'
else:
return '無(wú)'
@property
def cd(self):
"""改變屬性對(duì)應(yīng)值的意義"""
if self._cd == 1:
return '有'
else:
return '無(wú)'
2. 創(chuàng)建一個(gè)Person類,添加一個(gè)類字段用來(lái)統(tǒng)計(jì)Perosn類的對(duì)象的個(gè)數(shù)
class Person:
"""人類"""
person_num = 0 # 人口數(shù)量
def __init__(self, name, gender, age=0, ):
"""生一個(gè)人"""
self.name = name
self.gender = gender
self.age = age
Person.person_num += 1 # 增加一個(gè)人口數(shù)量
def die(self):
"""死一個(gè)人"""
del self
Person.person_num -= 1 # 減少一個(gè)人口數(shù)量
3.創(chuàng)建一個(gè)動(dòng)物類,擁有屬性:性別、年齡、顏色、類型 , 要求打印這個(gè)類的對(duì)象的時(shí)候以'/XXX的對(duì)象: 性別-? 年齡-? 顏色-? 類型-?/'的形式來(lái)打印
class Animal:
"""動(dòng)物"""
def __init__(self, gender, color, a_type, age=0):
self.gender = gender
self.color = color
self.type = a_type
self.age = age
def __repr__(self):
return '/%s的對(duì)象:性別-%s 年齡-%d 顏色-%s 類型-%s/' % (self.__class__.__name__, self.gender, self.age, self.color, self.type)
4. 寫一個(gè)圓類, 擁有屬性半徑、面積和周長(zhǎng);要求獲取面積和周長(zhǎng)的時(shí)候的時(shí)候可以根據(jù)半徑的值把對(duì)應(yīng)的值取到。但是給面積和周長(zhǎng)賦值的時(shí)候,程序直接崩潰,并且提示改屬性不能賦值
class ReadError(Exception):
"""聲明只讀錯(cuò)誤"""
def __str__(self):
return '該值不能賦值'
class Circular:
"""圓"""
pi = 3.14
def __init__(self, radius: int):
self.radius = radius
self._area = 0
self._perimeter = 0
@property
def area(self):
"""得面積的值"""
return Circular.pi * self.radius * self.radius
@property
def perimeter(self):
"""得周長(zhǎng)的值"""
return 2 * Circular.pi * self.radius
@area.setter
def area(self, value):
"""面積不可變"""
raise ReadError
@perimeter.setter
def perimeter(self, value):
"""周長(zhǎng)不可變"""
raise ReadError
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。