类变量是定义在类中,不属于某个具体对象的特征,被全部对象共同使用的特征,属于整个类的变量。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时提示关机等,其它可自行操做。