python二郎成長筆記(二)(封裝類class)
封裝類——class(將內容封裝到某處)
class name:
def const(self,……)
我們呼叫函式const時可以這樣呼叫
obj = name()
obj.const()
這裡有個概念,類中均包含一個公有引數集,該引數集可以被類內任意函式呼叫,因此這裡也有規定,類內函式的第一個位置引數都是self(這保證了所有函式都能呼叫self這個引數集)
下面例項來自:https://www.cnblogs.com/chengd/articles/7287528.html
練習二:遊戲人生程式
1、建立三個遊戲人物,分別是:
蒼井井,女,18,初始戰鬥力1000
東尼木木,男,20,初始戰鬥力1800
波多多,女,19,初始戰鬥力2500
2、遊戲場景,分別:
草叢戰鬥,消耗200戰鬥力
自我修煉,增長100戰鬥力
多人遊戲,消耗500戰鬥力
複製程式碼
定義實現功能的類
class Person:
def __init__(self, na, gen, age, fig): #初始定義self
self.name = na
self.gender = gen
self.age = age
self.fight =fig
def grassland(self):
"""註釋:草叢戰鬥,消耗200戰鬥力"""
self.fight = self.fight - 200
def practice(self):
"""註釋:自我修煉,增長100戰鬥力"""
self.fight = self.fight + 200
def incest(self):
"""註釋:多人遊戲,消耗500戰鬥力"""
self.fight = self.fight - 500
def detail(self):
"""註釋:當前物件的詳細情況"""
temp = "姓名:%s ; 性別:%s ; 年齡:%s ; 戰鬥力:%s" % (self.name, self.gender, self.age, self.fight)
print temp
# ##################### 開始遊戲 #####################
cang = Person('蒼井井', '女', 18, 1000) # 建立蒼井井角色
dong = Person('東尼木木', '男', 20, 1800) # 建立東尼木木角色
bo = Person('波多多', '女', 19, 2500) # 建立波多多角色
cang.incest() #蒼井井參加一次多人遊戲
dong.practice()#東尼木木自我修煉了一次
bo.grassland() #波多多參加一次草叢戰鬥
#輸出當前所有人的詳細情況
cang.detail()
dong.detail()
bo.detail()
cang.incest() #蒼井空又參加一次多人遊戲
dong.incest() #東尼木木也參加了一個多人遊戲
bo.practice() #波多多自我修煉了一次
#輸出當前所有人的詳細情況
cang.detail()
dong.detail()
bo.detail()
遊戲人生
一般應用流程為
定義類
class Person:
初始化類內self
def __init__(self, na, gen, age, fig): #初始定義self
使用類的過程相互獨立,使用前先進行初始化
cang = Person('蒼井井', '女', 18, 1000) # 建立蒼井井角色
dong = Person('東尼木木', '男', 20, 1800) # 建立東尼木木角色
bo = Person('波多多', '女', 19, 2500) # 建立波多多角色
之後直接可以使用類內函式
cang.incest() #蒼井井參加一次多人遊戲
……用起來是不是很舒服……開心
當然,類在使用中也涉及了繼承類,即我們定義了一個類,在定義第二個類時發現該類中有些東西和第一個類的重複了,因此我們可以讓第二個類繼承第一個類的變數和函式
class A()
class B(A) #B類繼承了A類
例如:
我們遊戲中職業分戰士和法師
而戰士和法師,每個人都有血、藍和經驗,因此血、藍和經驗無需二次定義
class role
def __init__(self, blo, mn, exp): #初始定義self
self.blood = blo
self.mana = mn
self.experience =exp
def blood(self):
print "%s 的血量為: %s " %self.name,self.blood
def mn(self):
print "%s 的藍量為: %s " %self.name,self.mana
def exp(self):
print "%s 獲得的經驗值為: %s " %self.name,self.experience
法師
class master(role)
def __init__(self, na): #初始定義self
self.name = na
self.breed = '法師'
def doit(self):
print "熟練暴風鬼影"
戰士
class man(role)
def __init__(self, na): #初始定義self
self.name = na
self.breed = '戰士'
def doit(self):
print "熟練精魂水盾"
程式編輯好了,讓我們實驗一下
m1 = master('路易斯',45,344,1088);
master.mana()
master.doit()
m2 = man('波塞冬',250,15,988);
man.blood()
man.doit()
輸出
路易斯的藍量為:344
熟練暴風鬼影
波塞冬的血量為:250
熟練精魂水盾
下一章將回歸主題,開始尋找python進行雙目立體視覺構建的方法。
相關文章
- python3 筆記18.構建類classPython筆記
- JVM(筆記)—— Class 類檔案結構的說明(二)JVM筆記
- Python入門筆記(程式碼中成長)Python筆記
- TypeScript學習筆記之五類(Class)TypeScript筆記
- JavaFx 生成二維碼工具類封裝Java封裝
- Selenium二次封裝-Python版本封裝Python
- JVM學習筆記——Class類檔案解讀JVM筆記
- Python機器學習筆記——One Class SVMPython機器學習筆記
- python二郎成長筆記(一)(pip升級,python入門,基礎,python2和3不同格式帶來的問題,標頭檔案引用的格式,變數的型別,__name__ == '__main__')Python筆記變數型別AI
- Angular6筆記之封裝httpAngular筆記封裝HTTP
- python 打飛機專案 ( 基類封裝 )Python封裝
- python學習筆記(二)Python筆記
- Java類的設計和封裝及類成員的訪問控制Java封裝
- python 包安裝筆記Python筆記
- 封裝Date工具類封裝
- 封裝Redis工具類封裝Redis
- 基於python+selenium的二次封裝Python封裝
- Java學習筆記-Day21 Java System類、Class類、內部類、異常處理Java筆記
- python3筆記---抽象類例子Python筆記抽象
- java學習筆記(包裝類)Java筆記
- 封裝中的get、set方法-學習筆記封裝筆記
- js--class類、super和estends關鍵詞的學習筆記JS筆記
- c#封裝DBHelper類C#封裝
- 4、類和物件—封裝物件封裝
- 一、類的封裝性封裝
- 自用驗證類封裝封裝
- Python基礎入門筆記(二)Python筆記
- Python筆記二之多執行緒Python筆記執行緒
- python爬蟲學習筆記(二)Python爬蟲筆記
- python3+requests:使用類封裝介面測試指令碼Python封裝指令碼
- 抽象類的成員特點 學習筆記抽象筆記
- 使用 NPOI/DocX 二次封裝Office(Word、Excel)幫助類封裝Excel
- axios二次封裝iOS封裝
- JS物件之封裝(二)JS物件封裝
- 二次封裝WebDriverWait封裝WebAI
- Dapper的封裝、二次封裝、官方擴充套件包封裝,以及ADO.NET原生封裝APP封裝套件
- js 動態新增class封裝(es6語法)JS封裝
- Python學習筆記 - 裝飾器Python筆記