Python類和物件

2021-10-02 02:21:09 字數 4688 閱讀 7642

類的定義:

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 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類 的例項。方法 類中定義的函式。類變數 類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。方法重寫 如果從父類繼承的方法不能滿足子類...