物件的相關知識

2022-08-31 07:42:14 字數 2571 閱讀 8417

回到咱們的人狗大戰:現在我們需要對我們的類做出一點點改變

人類除了可以走路之外,還應該具備一些攻擊技能。

class person:  # 定義乙個人類

role = 'person' # 人的角色屬性都是人

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.aggressivity

物件是關於類而實際存在的乙個例子,即例項

物件/例項只有一種作用:屬性引用

egg = person('egon',10,1000)

print(egg.name)

print(egg.aggressivity)

print(egg.life_value)

當然了,你也可以引用乙個方法,因為方法也是乙個屬性,只不過是乙個類似函式的屬性,我們也管它叫動態屬性。

引用動態屬性並不是執行這個方法,要想呼叫方法和呼叫函式是一樣的,都需要在後面加上括號

print(egg.attack)
我知道在類裡說,你可能還有好多地方不能理解。那我們就用函式來解釋一下這個類呀,物件呀到底是個啥,你偷偷的用這個理解就好了,不要告訴別人

def person(*args,**kwargs):

self = {}

def attack(self,dog):

dog['life_value'] -= self['aggressivity']

def __init__(name,aggressivity,life_value):

self['name'] = name

self['aggressivity'] = aggressivity

self['life_value'] = life_value

self['attack'] = attack

__init__(*args,**kwargs)

return self

egg = person('egon',78,10)

print(egg['name'])

def person(*args,**kwargs):

self = {}

def attack(self,dog):

dog['life_value'] -= self['aggressivity']

def __init__(name,aggressivity,life_value):

self['name'] = name

self['aggressivity'] = aggressivity

self['life_value'] = life_value

self['attack'] = attack

__init__(*args,**kwargs)

return self

egg = person('egon',78,10)

print(egg['name'])

物件導向小結——定義及呼叫的固定模式

class 類名:

def __init__(self,引數1,引數2):

self.物件的屬性1 = 引數1

self.物件的屬性2 = 引數2

def 方法名(self):pass

def 方法名2(self):pass

物件名 = 類名(1,2) #物件就是例項,代表乙個具體的東西

#類名() : 類名+括號就是例項化乙個類,相當於呼叫了__init__方法

#括號裡傳引數,引數不需要傳self,其他與init中的形參一一對應

#結果返回乙個物件

物件名.物件的屬性1 #檢視物件的屬性,直接用 物件名.屬性名 即可

物件名.方法名() #呼叫類中的方法,直接用 物件名.方法名() 即可

# 物件 = 類名()

# 過程:

# 類名() 首先 會創造出乙個物件,建立了乙個self變數

# 呼叫init方法,類名括號裡的引數會被這裡接收

# 執行init方法

# 返回self

# 物件能做的事:

# 檢視屬性

# 呼叫方法

# __dict__ 對於物件的增刪改查操作都可以通過字典的語法進行

# 類名能做的事:

# 例項化

# 呼叫方法 : 只不過要自己傳遞self引數

# 呼叫類中的屬性,也就是呼叫靜態屬性

# __dict__ 對於類中的名字只能看 不能操作

類 物件相關知識

1 public class object0117 1819 20 類要放在main方法的外面 21 通過class 先定義類的名稱及屬性 22 定義乙個類名為nba 並賦予相應的屬性 23class nba 注意事項和細節說明 1.屬性的定義語法同變數,eg 訪問修飾符 屬性型別 屬性名 有四種訪...

函式跟物件相關知識

函式跟物件的區別 函式 可以封裝一段 物件 封裝一組屬性跟方法 物件的行為和特徵 特徵 屬性 行為 方法 事物的特徵在物件中用屬性來表示 事物的行為在物件中用方法來表示 物件建立方式 1.字面量 var o 2.new object 建立物件 var person new object person...

JavaScript物件導向 總結相關知識點

物件導向相關概念 js是一種基於物件的語言,和其他物件導向語言不同 物件 引用型別是一種資料結構,將資料結構和功能組織在一起,常被稱為類 某個特定引用型別的例項 引用型別 物件重點 this 指 1 在普通函式下 this指向的是 window 2 有事件源指向事件源本身 3 在定時器下 除es6 ...