物件導向 魔法方法 str

2022-09-08 23:30:21 字數 1301 閱讀 6161

class hero(object):

"""定義了乙個英雄類,可以移動和攻擊"""

def __init__(self, name, skill, hp, atk, armor):

""" __init__() 方法,用來做變數初始化 或 賦值 操作"""

# 英雄名

self.name = name # 例項變數

# 技能

self.skill = skill

# 生命值:

self.hp = hp # 例項變數

# 攻擊力

self.atk = atk

# 護甲值

self.armor = armor

def move(self):

"""例項方法"""

print("%s 正在前往事發地點..." % self.name)

def attack(self):

"""例項方法"""

print("發出了一招強力的%s..." % self.skill)

# def info(self):

# print("英雄 %s 的生命值 :%d" % (self.name, self.hp))

# print("英雄 %s 的攻擊力 :%d" % (self.name, self.atk))

# print("英雄 %s 的護甲值 :%d" % (self.name, self.armor))

def __str__(self):

"""這個方法是乙個魔法方法 (magic method) ,用來顯示資訊

該方法需要 return 乙個資料,並且只有self乙個引數,當在類的外部 print(物件) 則列印這個資料

"""return "英雄 <%s> 資料: 生命值 %d, 攻擊力 %d, 護甲值 %d" % (self.name, self.hp, self.atk, self.armor)

taidamier = hero("泰達公尺爾", "旋風斬", 2600, 450, 200)

gailun = hero("蓋倫", "大寶劍", 4200, 260, 400)

# 如果沒有__str__ 則預設列印 物件在記憶體的位址。

# 當類的例項化物件 擁有 __str__ 方法後,那麼列印物件則列印 __str__ 的返回值。

print(taidamier)

print(gailun)

# 檢視類的文件說明,也就是類的注釋

print(hero.__doc__)

說明:

python 物件導向魔法方法

類由三個部分構成 1.類的名稱2.類的屬性3.類的方法 物件 根據已經定義的類去建立出乙個或多個物件 格式為 物件名 類名 建立物件 新增和獲取物件的屬性 魔法方法 init 如果類沒有寫init方法,python會自動穿件,但不執行任何操作,如果為了能夠在完成自己想要的功能,可以直接定義init方...

物件導向(五) 魔法方法

魔法方法 定義 以雙下劃線開頭和結尾的方法,這些方法不允許開發者自己定義 特點 不需要顯式的呼叫,每乙個魔法方法都具有特定的觸發時機 目前說過的魔法方法 1 構造和初始化方法 2 比較運算子 3 算術運算子 4 復合運算子 5 物件列印 6 其他方法 print 物件被呼叫 return 10 de...

魔法方法中的 str 和 repr

str self class test1 def str self return i am str return即返回什麼列印什麼 a str 直接例項化物件名,會列印其位址 main.test1 object at 0x0000025e39348088 print a str 若print,則會列...