類的定義:
class 類名:#類的名稱它的首字母必須大寫。
類的屬性 #用於描述事物的特徵
類的方法 #用於描述事物的行為
類是對某一類事物的抽象描述,而物件是現實中該類事物的個體。
class
people()
:#類裡面可以包含變數、函式
#__init__方法:初始化物件
def__init__
(self,name,age)
:#類裡面函式第乙個引數必須是self,代表自己先不管
self.name = name#屬性值賦值給屬性名
self.age = age
#self代表自身,".name"給裡面新增乙個name變數
defsit
(self)
:print
(self.name+
"他在玩遊戲..."
)def
watch
(self)
:print
(self.name+
"又好像在看電影..."
)#例項 實際例子 又叫物件
#物件名 也是乙個變數名
man = people(
'張三',15
)#通過類名加上括號與括號內屬性引數需對應
woman = people(
'桃花',16
)print
(man.age)
print
(woman.name)
#訪問屬性
#self代表當前物件,這樣理解當我們建立man時self代表man
man.sit(
)woman.sit(
)man.watch(
)woman.watch(
)#訪問類裡面的函式
給類的屬性新增預設值與修改:
class
car():
def__init__
(self,make,model,year)
: self.make = make
self.model = model
self.year = year
self.mileage =
0#給屬性新增預設值
defdes
(self)
:print
(self.year+
' '+self.make+
' '
+self.model)
defget_mil
(self)
:print
('這個車已經跑了'
+str
(self.mileage)
+"km!"
)#str轉換成字串,上面那裡是整數,讀取預設值
defset_mil
(self,mileage)
:#屬性在類裡面設定方便管控
if self.mileageself.mileage = mileage#限制里程數只能調大
defadd_mil
(self,mileage)
:#增加里程
if mileage>=0:
#控制数字正負
self.mileage += mileage
car1 = car(
'奧迪'
,'q7'
,'2019'
)#上面是相加的,預設傳遞字串
car1.des(
)car1.set_mil(
100)
#訪問類裡面的函式修改里程
car1.get_mil(
)#car1.mileage = 100
#修改屬性值 直接修改在**量多時不建議
car1.add_mil(
120)
#測試增加里程
car1.get_mil(
)
繼承:
class
people()
:def
__init__
(self,name,age)
: self.name = name
self.age = age
defeat(self)
:print
(self.name+
'正在吃飯!'
)def
sleep
(self)
:print
(self.name+
'正在睡覺!'
)class
person
(people)
:#繼承:使用乙個類繼承另外乙個類上述peole是父類、peson是子類
def__init__
(self,name,age,title)
: self.title = title
#繼承父親只需讓父親裡面這些屬性初始化就好了
super()
.__init__(name,age)
#呼叫父類裡面的初始化方法也叫構造方法
#子類有自己的屬性是需要寫init方法
defteach
(self)
:print
(self.name+
'正在上課!'
)t1 = person(
'zhangsna',40
,'高階教師'
)t1.eat(
)t1.teach(
)#當父類與子類方法重名,優先呼叫子類
將類的例項作為屬性:把乙個類的物件作為另乙個類的屬性,也可以說類的組合。
class
weapon()
:def
__init__
(self,damage,bullet_count)
: self.damage = damage
self.bullet_count = bullet_count
defattack
(self)
: self.bullet_count -=
1print
('發**一顆子彈,攻擊力為'
+str
(self.damage)
)class
role()
:def
__init__
(self,name,lv,role_type,damage,bullet_count)
: self.name = name
self.lv = lv
self.role_type =role_type
self.weapon = weapon(damage,bullet_count)
#利用了wepaon類建立了物件,再賦值給role的乙個屬性。
#也就是說role的weapon屬性是乙個物件
defmove
(self)
:print
(self.name+
'正在移動...'
)def
attack
(self)
: self.weapon.attack(
)#呼叫
role = role(
'張老頭呀',10
,'漫遊槍手'
,1000
,500
)role.move(
)role.attack(
)#測試效果
通過模組匯入類:
import 檔名;
from 檔名 import 類名稱。
python函式的一些小練習:
def
test
(i):
isnull =
false
for t in i:
if t. strip()==
'':isnull=
true
break
return isnull #判斷引數是否含空字元
print
(test(
['qwdasd'
,'sadw',''
]))def
fun(l)
:#提取列表中奇數索引位置元素
li=for t in
range(0
,len
(l))
:if t%2==
1:)return li
l =[1,
2,3,
4,5,
6,7,
8]print
(fun(l)
)def
test
(d):
for k in d.keys():
iflen
(d[k]
)>2:
d[k]
=d[k][0
:2]return d
d =print
(test(d)
)#字典擷取
deff
(n):
#求斐波拉契數列
if n==
1or n==2:
return
1 res = f(n-1)
+f(n-2)
return res
print
(f(10
))
Python類和物件
1 建立類 語法 class classname 類的幫助資訊 類文件字串 class suite 類體 例如 class employee 所有員工的基類 empcount 0 def init self,name,salary self.name name self.salary salary ...
Python類和物件
python類和物件 類 具有相同的屬性和方法的物件的集合。物件 萬物皆物件。類和物件的關係 類是具有相同屬性方法物件的集合。類包含屬性和方法 語法 class 類名 屬性 方法定義乙個類 建立物件 屬性寫在類外的情況,就是通過物件,屬性,物件,方法的方式呼叫。屬性相對於類來說屬於全域性,每個方法都...
Python類和物件
類和物件 類 class 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類 的例項。方法 類中定義的函式。類變數 類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。方法重寫 如果從父類繼承的方法不能滿足子類...