python物件導向學習 python物件導向學習

2021-10-11 02:44:25 字數 3039 閱讀 9452

物件導向最重要的概念就是類(class)和例項(instance),必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的「物件」,每個物件都擁有相同的方法,但各自的資料可能不同。

物件導向三個概念:

1.封裝

即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進行操作,對不可信的進行隱藏

class cat(animal):

def bite(self):

print("貓咪咬")

lanmao = cat()

2.繼承

乙個類可以繼承其他乙個類的屬性和方法,比如我們定義乙個動物類和貓咪類,貓咪繼承動物,這樣例項化乙個貓咪物件時,貓咪也繼承了動物類的跑方法

如果需要繼承

class animal:

def run(self):

print("跑得快")

class cat(animal):

def bite(self):

print("貓咪咬")

lanmao = cat()

lanmao.run()

>>跑得快

使用繼承時,通常會用到super()方法,在python2中,通常需要在super()中加上object,python3不需要新增,可以使用super()提高**的可復用性、可維護性

以下函式,cat類繼承animal中的初始化中的方法

class animal:

def __init__(self,life):

self.life = life

print(self.life)

class cat(animal):

def __init__(self,life):

super().__init__(life)

self.life = life

a = animal(223)

mimi = cat(45)

>>223

3.多型

看如下**,當子類和父類都存在相同的run()方法時,我們說,子類的run()覆蓋了父類的run(),在**執行的時候,總是會呼叫子類的run()。這樣,我們就獲得了繼承的另乙個好處:多型。在子類呼叫run方法時,無論子類怎樣呼叫,都不會影響到其他子類繼承父類的方法去呼叫使用

class animal:

def run(self):

print("跑得快")

class cat(animal):

def bite(self):

print("貓咪咬")

def run(self):

print("貓咪在跑")

class dog(animal):

def laugh(self):

print("小狗在笑")

lanmao = cat()

wangcai = dog()

lanmao.run()

wangcai.run()

>>貓咪在跑

跑得快在業務編寫時,需要發掘重要的業務領域概念,建立業務領域概念之間的關係,找名詞,加屬性,連關係

其中物件之間的還有各種依存關係,限於篇幅和筆者個人能力不一一贅述

class role(object):

def __init__(self,name,role,weapon,attack,life_value = 100,money = 10000):

self.name = name

self.role =role

self.weapon = weapon

self.life_value = life_value

self.money = money

self.attack = attack

def shot(self,other):

print('%s 在射擊' %self.name)

print('%s跟%s在中路拼槍' %(self.name,other.name))

self.life_value = int(self.life_value)-int(other.attack)

if self.life_value > 0:

print('%s活下來了,還剩下%s血'%(self.name,self.life_value))

else:

print('%s掛了,充點錢吧,充錢才能更強'%self.name)

def get_shot(self,attract):

# self.life_value -= int(attract)

print('%s 被射中了,還剩下%s 血' %(self.name,self.life_value))

def arm(self,gun):

self.attack =int(self.attack)+int(gun.attack)

self.weapon = gun.name

self.money =int(self.money)-int(gun.money)

print('%s %s 裝備了%s,攻擊力提公升啦,竟然達到了驚人的%s 點' %(self.role,self.name,

self.weapon,self.attack))

print('%s 買了%s,還剩下 %s元錢' %(self.name,gun.name,self.money))

class gun(object):

def __init__(self,name,attack,money):

self.name=name

self.attack = attack

self.money = money

ak47 = gun('ak47','89','3000')

an94 = gun('an94','90','5000')

lsj = role('lsj','police','knief',10)

wyz = role('wyz','bandit','knief',10)

lsj.arm(ak47)

wyz.arm(an94)

lsj.shot(wyz)

wyz.shot(lsj)

python學習 物件導向

繼承 從已經有的類建立新類的過程,提供繼承資訊的叫父類 超類 基類 得到繼承資訊的叫子類 派生類 繼承是實現 復用的方式,繼承關係是一種is a關係。a student is a person.a teacher is a person.class person 定義人類 屬性name 名字 屬性n...

python物件導向學習

1.物件 物件是資料和功能 函式 的集合體 2.類 類是具有共同屬性 資料 函式 的物件的總稱 注 先定義類後例項化物件 3.屬性訪問 可以通過 dict 訪問屬性的值 4.屬性查詢和方法繫結 物件的命名空間裡只存放著物件獨有的屬性,而物件們相似的屬性是存放於類中的。物件在訪問屬性時,會優先從物件本...

python學習 物件導向程式設計

物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...