建立類
下面是通過乙個例項來進行知識點小結。
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當中,...