python面向对象简单示例—小明手里的牌

小明手里有两张牌,左右♥K,右手♠A,小明交换两手的牌后,手里分别是什么?

本篇适合刚学习面向对象的新手,开拓思路。

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

    • 对象: 小明、左手、右手、牌1、牌2        
         类:  人、手、牌

#, 扑克牌
class Poker:
    def __init__(self,color,number):
        self.color=color
        self.number=number

    def __str__(self):
        return '{}{}'.format(self.color,self.number)
# 创建两张牌
p1=Poker('♥','k')
p2=Poker('♠','A')

# 手的类
class Hand:
    def __init__(self,poker):
        self.poker=poker
    def hold_poker(self,poker):
        self.poker=poker
# 创建左右两只手
left_hand=Hand(p1)
right_hand=Hand(p2)

# 人的类
class Person:
    def __init__(self,name,left_hand,right_hand):
        self.name=name
        self.left_hand=left_hand
        self.right_hand=right_hand
    # 显示手里的牌
    def show(self):
        print('{}张开手'.format(self.name),end=',')
        print('左手:{}'.format(self.left_hand.poker),end=',')
        print('右手:{}'.format(self.right_hand.poker))
    # 交换手里的牌
    def swap(self):
        self.left_hand.poker,self.right_hand.poker=self.right_hand.poker,self.left_hand.poker
        print('{}交换两手的牌'.format(self.name))
# 创建对象小明
xiaoming=Person('小明',left_hand,right_hand)
# 展示手里的牌
xiaoming.show()
# 交换两手的牌,
xiaoming.swap()
#  再展示手里的牌
xiaoming.show()

执行代码后,右键run运行结果:

小明张开手,左手:♥k,右手:♠A
小明交换两手的牌
小明张开手,左手:♠A,右手:♥k

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值