Day 15 物件導向2習題

2021-10-25 05:52:35 字數 4496 閱讀 6269

建立乙個汽車類auto,包括輪胎個數,汽車顏色,車身重量,速度等屬性,並通過不同的構造方法建立例項。至少要求 汽車能夠加速 減速 停車。 再定義乙個小汽車類carauto 繼承auto 並新增空調、cd屬性,並且重新實現方法覆蓋加速、減速的方法

class

auto

: stop_flag =

'停車'

accelerate_flag =

'加速'

slow_flag =

'減速'

def__init__

(self, color, weight, speed, tires)

: self.tires = tires

self.color = color

self.weight = weight

self.speed = speed

defaccelerate

(self)

:return auto.accelerate_flag

@classmethod

defslow

(cls)

:return cls.slow_flag

@staticmethod

defstop()

:return auto.stop_flag

class

carauto

(auto)

:def

__init__

(self, air, cd, color, weight, speed, tires=4)

:super()

.__init__(color, weight, speed, tires)

self.air =

none

self.cd =

none

defaccelerate

(self)

:return f'->加速!'

@classmethod

defslow

(cls)

:return f'->減速!'

c1 = carauto(

true

,true

,'white'

,120

,300

)print

(c1.accelerate_flag)

print

(c1.color)

print

(c1.stop())

print

(c1.accelerate())

print

(c1.slow(

))

建立乙個person類,新增乙個類欄位用來統計perosn類的物件的個數

class

person

: count =

0def

__init__

(self)

: person.count +=

1# print(person.count)

@classmethod

defobject_num

(cls)

:return f'呼叫person類的物件個數為:'

p1 = person(

)p2 = person(

)p3 = person(

)p4 = person(

)print

(person.object_num(

))

建立乙個動物類,擁有屬性:性別、年齡、顏色、型別 ,

要求列印這個類的物件的時候以』/***的物件: 性別-? 年齡-? 顏色-? 型別-?/』 的形式來列印

import re

class

animal

:def

__init__

(self, ***, age, color, species)

: self.*** = ***

self.age = age

self.color = color

self.species = species

def__repr__

(self)

: r1 = re.

compile

(r':'

) r2 = re.

compile

(r','

) strs =

str(self.__dict__)

str1 = re.sub(r1,

'-', strs)

str2 = re.sub(r2,

' ', str1)

return f'/的物件:/'

a1 = animal(

'male',20

,'yellow'

,'mammals'

)print

(a1)

寫乙個圓類, 擁有屬性半徑、面積和周長;要求獲取面積和周長的時候的時候可以根據半徑的值把對應的值取到。但是給面積和周長賦值的時候,程式直接崩潰,並且提示改屬性不能賦值

class

round

: pi =

3.14

def__init__

(self, radius)

: self.r = radius

# self._perimeter = 0

# self._area = 0

@property

defperimeter

(self)

:return

(self.r <<1)

* round.pi

@property

defarea

(self)

:return self.r**

2* round.pi

@perimeter.setter

defperimeter

(self, value)

:if value or value ==0:

raise valueerror

@area.setter

defarea

(self, value)

:if value or value ==0:

raise valueerror

o = round(3)

print

(o.perimeter)

print

(o.area)

寫乙個撲克類, 要求擁有發牌和洗牌的功能(具體的屬性和其他功能自己根據實際情況發揮)

import random

class

poker

: colors =

['♦'

,'♣'

,'♥'

,'♠'

] numbers =

['j'

,'q'

,'k'

,'a'

,'1'

,'2'

,'3'

,'4'

,'5'

,'6'

,'7'

,'8'

,'9'

,'10'

] @classmethod

defpoker

(cls)

: pokers =

[i + j for i in cls.colors for j in cls.numbers]

pokers.extend(

['joker'

,'joker'])

# print(pokers)

return pokers

@classmethod

defp_shuffle

(cls)

: s_poker = cls.poker(

) random.shuffle(s_poker)

return s_poker

@classmethod

defp_licensing

(cls)

: i_poker =

iter

(cls.p_shuffle())

a_cards =

b_cards =

c_cards =

for _ in

range(18

):next

(i_poker)

)next

(i_poker)

)next

(i_poker)

)return f'a的手牌為:\nb的手牌為:\nc的手牌為:'

print

(poker.poker())

print

(poker.p_shuffle())

print

(poker.p_licensing(

))

Day 15 物件導向2

day 15 物件屬性操作語法 1 物件.屬性名 屬性名不存在時會報錯 2 getattr.物件,屬性名 注意 屬性名要用 引起來 在屬性名後面加乙個引數表示預設值,在屬性名不存在時返回預設值 語法 1 物件.屬性名 值 屬性名存在時會修改 屬性值不存在時會新增 2 setattr 物件,屬性名 值...

Python專案 Day15 物件導向(高階

動態為物件繫結方法 from types import methodtype class person pass def displayme self print my genderis self.gender 給乙個例項繫結的方法,對另乙個例項是不起作用的 p1.displayme methodt...

檔案操作(day15)

呼叫函式可以使用被呼叫函式動態分配的 儲存區calloc函式也可以動態分配一組連續的 儲存區這個函式可以把所有動態分配的儲存區 內容設定成0 為了使用這個函式也需要包含stdlib.h標頭檔案 這個函式需要兩個引數,第乙個引數表示要 分配的儲存區個數,第二個引數表示單個 儲存區的大小 這個函式的返回...