類變量是定義在類中,不屬於某個具體對象的特徵,被全部對象共同使用的特徵,屬於整個類的變量。python
class 類名:
變量名 = 值
複製代碼
類名下直接定義變量優化
賦值格式:spa
類名.類變量名 = 值code
取值格式:cdn
類名.類變量名(推薦)對象
對象名.類變量名(不推薦)blog
類方法是定義在類中,不屬於某個具體對象的行爲,被全部對象共同使用的行爲,類方法在類中公有。遊戲
class 類名:
@classmethod
def 類方法名(cls,形參1,形參2,...):
類方法體
複製代碼
類名.類方法名(實參1,實參2,...)(推薦)string
對象名.類方法名(實參1,實參2,...)(不推薦)it
class 類名:
@staticmethod
def 方法名(形參1,形參2,…):
方法體
複製代碼
類名.靜態方法名(實參1,實參2,…)(推薦)
對象名.靜態方法名(實參1,實參2,…)(不推薦)
""" 演示手機案例 要求: 手機電量默認是100 打遊戲每次消耗電量10 聽歌每次消耗電量5 打電話每次消耗電量4 接電話每次消耗電量3 充電能夠爲手機補充電量 """
# 分析
# 1. 定義類Phone
# 2. 定義變量用於描述電量值
# 3. 定義4個方法用於描述耗電操做
# 4. 定義1個方法用於描述充電操做
# 5. 運行程序,執行上述操做,觀察結果
class Phone():
def __init__(self):
self.hp = 100
def game(self):
# 打遊戲耗電10
print("打遊戲操做,耗電10")
self.hp -= 10
def music(self):
# 聽歌耗電5
print("聽歌操做,耗電5")
self.hp -= 5
def call(self):
# 打電話耗電4
print("打電話操做,耗電4")
self.hp -= 4
def answer(self):
# 聽歌耗電3
print("接電話操做,耗電3")
self.hp -= 3
def charge(self, num):
print("充電斷開,已充%d" % num)
self.hp += num
def __str__(self):
return "當前手機電量爲:%d" % self.hp
# 建立一部電話,當前電量是100
p = Phone()
# 調用耗電操做
p.game()
print(p)
p.game()
print(p)
p.game()
print(p)
p.charge(10)
print(p)
複製代碼
""" 演示手機修復增強版案例 要求: 手機耗電操做前要先斷定電量是否足夠完成此項任務 手機充電操做不能充電超過最大值 """
# 分析
# 1. 耗電操做以前必須進行斷定(if系列),根據結果不一樣作對應的事情
# 2. 充電操做必須進行斷定,手機電量不能超過最大值100
class Phone:
def __init__(self):
self.hp = 100
def game(self):
"""打遊戲操做,耗電10"""
# 斷定當前電量是否可以完成打遊戲的請求
if self.hp >= 10:
# 正常運行,減小電量
print("打遊戲操做,耗電10")
self.hp -= 10
else:
# 不能正常運行,給出提示
print("當前電量不足,沒法完成操做")
def music(self):
# 斷定當前電量是否可以完成聽歌的請求
if self.hp >= 5:
# 正常運行,減小電量
print("聽歌操做,耗電5")
self.hp -= 5
else:
# 不能正常運行,給出提示
print("當前電量不足,沒法完成操做")
def call(self):
# 斷定當前電量是否可以完成打電話的請求
if self.hp >= 4:
# 正常運行,減小電量
print("打電話操做,耗電4")
self.hp -= 4
else:
# 不能正常運行,給出提示
print("當前電量不足,沒法完成操做")
def answer(self):
# 斷定當前電量是否可以完成接電話的請求
if self.hp >= 3:
# 正常運行,減小電量
print("接電話操做,耗電3")
self.hp -= 3
else:
# 不能正常運行,給出提示
print("當前電量不足,沒法完成操做")
def charge(self,num):
# 判斷當前電量,與充電作比較
if self.hp + num > 100:
# 過充
print("充電已完成,請移除充電器,當前電量爲:100")
# 賦值100,解決過充出現150等
self.hp = 100
else:
# 正常充
print("充電斷開,充電%d" % num)
self.hp += num
def __str__(self):
return "當前手機電量爲:%d" % self.hp
p = Phone()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
print(p)
p.charge(50)
print(p)
複製代碼
案例還可優化,小問題電量=0時提示關機等,其它可自行操做。