经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
pyhton 面向对象之 小明左右手换牌
来源:cnblogs  作者:程序灬波  时间:2018/10/8 9:08:02  对本文有异议

'''
#左右手交换牌 案列
#小明手里有俩张牌,左手红桃?K,右手黑桃?A,小明交换俩手的牌后,手里分别是什么?

人类:
    属性:小明,左手,右手
    行为:展示手里的牌, 交换手里的牌
手类:
    属性:牌
    行为:手里拿着扑克牌
牌类:
    属性:颜色,数字(红桃?K ,黑桃?A)


思路:
    先找到对象:左手,右手,?K,黑桃A,小明
    根据对象抽出对应的类:人,手,牌
    根据需要写出相应地逻辑,很可能反过来完善类的设计
    按照题目要求创建相关对象,调用相关方法,实现相关功能


'''

 

  1. #扑克类
  2. class Poker:
  3. def __init__(self,color,num):
  4. self.color = color
  5. self.num = num
  6. def __str__(self):
  7. return '{}{}'.format(self.color,self.num)
  8. #创建牌类对象
  9. p1 = Poker('?','K')
  10. p2 = Poker('?','A')
  11. #手类
  12. class Hond:
  13. def __init__(self,poker):
  14. self.poker = poker
  15. def hold_poker(self,poker):
  16. self.poker = poker
  17. #创建左右手对象
  18. life_hond = Hond(p1)
  19. right_hond = Hond(p2)
  20. # print(life_hond)
  21. # print(right_hond)
  22. #人类
  23. class Person:
  24. def __init__(self,name,life_fond,right_fond):
  25. self.name = name
  26. self.life_fond = life_fond
  27. self.right_fond = right_fond
  28. #展示手里的牌
  29. def show(self):
  30. print('{}张开双手'.format(self.name),end='')
  31. print('左手:{}'.format(self.life_fond.poker),end=',')
  32. print('右手:{}'.format(self.right_fond.poker))
  33. #交换手里的牌
  34. def swap(self):
  35. self.life_fond.poker,self.right_fond.poker = self.right_fond.poker,self.life_fond.poker
  36. print('{}交换俩手的牌'.format(self.name))
  37. #创建小明对象
  38. xiaoming = Person('小明',life_hond,right_hond)
  39. #展示手里的牌
  40. xiaoming.show()
  41. #交换手里的牌
  42. xiaoming.swap()
  43. #在展示手里的牌
  44. xiaoming.show()

 








 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号