類 知識梳理

2021-10-08 21:44:47 字數 3786 閱讀 2929

建立類

下面是通過乙個例項來進行知識點小結。

class

dog():

def__init__

(self,name,age)

: self.name=name

self.age=age

defsit(self)

:print

(self.name.title()+

" is now sitting."

)def

roll_over

(selfo)

:print

(selfo.name.title()+

" rolled over!"

)

方法init()

類中的函式稱為方法,此方法__init__()是乙個特殊的方法,開頭和末尾各有兩個下劃線,當建立dog的新例項時,python會預設執行它。形參self必不可少且位於其他形參前面,呼叫此方法時,不用給self賦值,,每個與類相關聯的方法呼叫都會自動傳遞實參self。

給屬性指定預設值

class

car():

def__init__

(self,make,model,year)

: self.make=make

self.model=model

self.year=year

self.odomeder_reading=

0#給屬性制定預設值

defget_descriptive_name

(self)

: long_name=

str(self.year)

+' '

+self.make+

' '+self.model

return long_name.title(

)def

read_odometer

(self)

:print

("this car has "

+str

(self.odomeder_reading)

+" miles on it."

)def

update_odometer

(self,mileage)

:if mileage>=self.odomeder_reading:

self.odomeder_reading=mileage

else

:print

("you can't roll back an odometer!"

)def

increment_odometer

(self,miles)

: self.odomeder_reading+=miles

my_new_car=car(

'audi'

,'a4'

,2016

)print

(my_new_car.get_descriptive_name(

))

指定預設值後,就無需包含為它提供初始值的實參。

直接修改屬性的值

my_new_car.odometer_reading =

23

通過方法修改屬性的值

my_new_car.update_odometer(

23)

通過方法對屬性的值進行遞增

def

increment_odometer

(self,miles)

: self.odometer_reading += miles

乙個類繼承另乙個類時,他將自動獲得另乙個累的所有屬性和方法;原有的類稱為父類,而新類稱為子類。子類繼承了其父類的所有的屬性和方法,同時還可以定義自己的屬性和方法。

class

car():

def__init__

(self,make,model,year)

: self.make=make

self.model=model

self.year=year

self.odometer_reading=

0def

get_descriptive_name

(self)

:return

(str

(self.year)

+' '

+self.make+

' '+self.model)

deffill_gas_tank

(self)

:print

("100"

)class

battery()

:--snip-

-class

electriccar

(car)

:def

__init__

(self,make,model,year)

:super()

.__init__(make,model,year)

#關聯父類

self.battery_size=

70#給子類定義屬性

self.battery = battery(

)#將例項用作屬性

defdescribe_battey

(self)

:#給子類定義方法

print

("this car has a "

+str

(self.battery_size)

+'-kwh battery'

)def

fill_gas_tank

(self)

:#重寫父類的方法

print

("this car doesn't need a gas tank! "

)my_tesla=electriccar(

'tesla'

,'model s'

,2016

)print

(my_tesla.get_descriptive_name())

my_tesla.describe_battey(

)my_tesla.fill_gas_tank(

)

super() 是乙個特殊函式,幫助python將父類和子類關聯起來。

可通過在子類中重寫與父類同名的方法,可替代父類中該同名方法。

匯入單個類

my_car.py

from car import car
乙個模組儲存多個類

從乙個模組中匯入多個類

my_car.py

from car import car,electriccar
匯入整個模組

my_car.py

from module_name import

#

在乙個模組中匯入另乙個模組

參考書籍《python程式設計從入門到實踐》

2020.8.5_第三週

知識梳理 string類

string類是模板類 typedef basic string char string 使用string類要包含標頭檔案 string物件的初始化 string s1 hello string month month string s2 8 x 錯誤的初始化方法 string e1 c error...

知識梳理 3 10演算法類

快速排序,選擇排序,希爾排序,氣泡排序 快速排序 快速排序 var quicksort function arr var pivotindex math.floor arr.length 2 基準位置 理論上可任意選取 var pivot arr.splice pivotindex,1 0 基準數 ...

知識梳理 UI 框架類們

1.五種常用的layout布局 linearlayout 順序布局 優勢 可根據weight進行比例布局,劣勢 不能激動靈活的將元件放到恰當的位置上 總結,linearlayout適合搭框架和根據比例描畫,能很好的適配各種尺寸的螢幕,不擅長擺放內部元件,但是如果將其放入scrollorview當中,...