pyhton 面向对象之 小明左右手换牌
程序员文章站
2022-06-28 19:14:55
'''#左右手交换牌 案列#小明手里有俩张牌,左手红桃♥K,右手黑桃♠A,小明交换俩手的牌后,手里分别是什么?人类: 属性:小明,左手,右手 行为:展示手里的牌, 交换手里的牌手类: 属性:牌 行为:手里拿着扑克牌牌类: 属性:颜色,数字(红桃♥K ,黑桃♠A)思路: 先找到对象:左手,右手,♥K, ......
'''
#左右手交换牌 案列
#小明手里有俩张牌,左手红桃♥k,右手黑桃♠a,小明交换俩手的牌后,手里分别是什么?
人类:
属性:小明,左手,右手
行为:展示手里的牌, 交换手里的牌
手类:
属性:牌
行为:手里拿着扑克牌
牌类:
属性:颜色,数字(红桃♥k ,黑桃♠a)
思路:
先找到对象:左手,右手,♥k,黑桃a,小明
根据对象抽出对应的类:人,手,牌
根据需要写出相应地逻辑,很可能反过来完善类的设计
按照题目要求创建相关对象,调用相关方法,实现相关功能
'''
#扑克类 class poker: def __init__(self,color,num): self.color = color self.num = num def __str__(self): return '{}{}'.format(self.color,self.num) #创建牌类对象 p1 = poker('♥','k') p2 = poker('♠','a') #手类 class hond: def __init__(self,poker): self.poker = poker def hold_poker(self,poker): self.poker = poker #创建左右手对象 life_hond = hond(p1) right_hond = hond(p2) # print(life_hond) # print(right_hond) #人类 class person: def __init__(self,name,life_fond,right_fond): self.name = name self.life_fond = life_fond self.right_fond = right_fond #展示手里的牌 def show(self): print('{}张开双手'.format(self.name),end='') print('左手:{}'.format(self.life_fond.poker),end=',') print('右手:{}'.format(self.right_fond.poker)) #交换手里的牌 def swap(self): self.life_fond.poker,self.right_fond.poker = self.right_fond.poker,self.life_fond.poker print('{}交换俩手的牌'.format(self.name)) #创建小明对象 xiaoming = person('小明',life_hond,right_hond) #展示手里的牌 xiaoming.show() #交换手里的牌 xiaoming.swap() #在展示手里的牌 xiaoming.show()
上一篇: 前端面试题(一)