pyhton 面向对象之 小明左右手换牌

'''
#左右手交换牌 案列
#小明手里有俩张牌,左手红桃♥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()








原文地址:https://www.cnblogs.com/chengxubo/p/9749391.html