python之物件導向的互動

2022-05-27 10:03:09 字數 1651 閱讀 5278

我們新建乙個貓類,通過給貓一些具體的屬性我們就可以拿到乙個實實在在的貓。現在我們要再建立乙個狗類,狗就不能打貓了,只能咬貓,所以我們給狗想乙個方法。

有了狗類,我們還要例項化乙隻實實在在的狗出來。然後貓和狗就可以打架了。現在我們就來讓它們打一架吧!

class

cat: # 定義乙隻貓

role = '

cat'

# 屬性還是貓

def __init__(self, name, aggressivity, life_value):

self.name =name # 每乙個貓都有自己的暱稱;

self.aggressivity =aggressivity # 每乙個貓都有自己的攻擊力;

self.life_value =life_value # 每乙個貓都有自己的生命值;

def attack(self,dog):

# 貓可以攻擊狗,這裡的狗也是乙個物件。

# 貓攻擊狗,那麼狗的生命值就會根據人的攻擊力而下降

dog.life_value -= self.aggressivit

class

dog: # 定義乙個狗類

role = '

dog'

# 狗的角色屬性都是狗

def __init__(self, name, breed, aggressivity, life_value):

self.name =name # 每乙隻狗都有自己的暱稱;

self.breed =breed # 每乙隻狗都有自己的品種;

self.aggressivity =aggressivity # 每乙隻狗都有自己的攻擊力;

self.life_value =life_value # 每乙隻狗都有自己的生命值;

def bite(self,cat):

# 狗可以咬貓,這裡的狗也是乙個物件。

# 狗咬貓,那麼貓的生命值就會根據狗的攻擊力而下降

dog.life_value -= self.aggressivit

例項化乙隻實實在在的二哈

erha = dog('

二愣子','

哈士奇',10,1000) #創造了乙隻實實在在的二哈:erha

互動 egon打erha一下

print(erha.life_value)         #看看erha的生命值

egg.attack(erha) #egg打了erha一下

print(erha.life_value) #erha掉了10點血

類的屬性

建立乙個類就會建立乙個類的命名空間,用來儲存類中定義的所有名字,這些名字稱為類的屬性

而類有兩種屬性:靜態屬性和動態屬性

其中類的資料屬性是共享給所有物件的

>>>id(egg.role)

4341594072

>>>id(cat.role)

4341594072

而類的動態屬性是繫結到所有物件的

建立乙個物件/例項就會建立乙個物件/例項的命名空間,存放物件/例項的名字,稱為物件/例項的屬性

python之物件導向

類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...

python之物件導向

python中一切皆物件 class 定義的類屬於類物件 obj1 屬於例項物件 在程式執行時,類同樣會載入到記憶體,類物件在記憶體中只有乙份,使用乙個類可以建立出很多例項物件 除了封裝例項的屬性和方法外,類物件還可以擁有自己的屬性和方法 類屬性和例項屬性 類屬性就是給類物件中定義屬性,通常用來記錄...

python之物件導向

物件導向介紹 一 物件導向和面向過程 面向過程 核心過程二字,過程即解決問題的步驟,就是先幹什麼後幹什麼 基於該思想寫程式就好比在這是一條流水線,是一種機械式的思維方式 優點 複雜的過程流程化 缺點 擴充套件性差 物件導向 核心是物件二字,物件指特徵與技能的結合體 基於該思想編寫程式就好比在創造乙個...