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,則會列...