Python基础篇:面向对象【案例实操】_python面向对象的实例练习 csdn

本文介绍了Python面向对象编程的概念,通过创建Poker、Player和Card类进行实例操作。首先定义了扑克牌类Poker,实现洗牌和发牌功能,接着创建Player类表示玩家,并让玩家从扑克牌中获取卡片。同时,利用Python的抽象基类(ABCMeta)创建Employee、Manager、Programmer和Salesman类,展示面向对象在模拟现实场景中的应用。此外,还提供了Python学习路线、开发工具推荐、学习笔记、实战案例和面试准备等资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Poker:
“”“扑克”“”

def \_\_init\_\_(self):
    # 通过列表的生成式语法创建一个装52张牌的列表
    self.cards = [Card(suite, face) for suite in Suite
                  for face in range(1, 14)]
    # current属性表示发牌的位置
    self.current = 0

def shuffle(self):
    """洗牌"""
    self.current = 0
    # 通过random模块的shuffle函数实现列表的随机乱序
    random.shuffle(self.cards)

def deal(self):
    """发牌"""
    card = self.cards[self.current]
    self.current += 1
    return card

@property
def has\_next(self):
    """还有没有牌可以发"""
    return self.current < len(self.cards)

![在这里插入图片描述](https://img-blog.csdnimg.cn/8ff3531906cf4adb9131d9a0c3f0caf5.png#pic_center)


* 可以通过下面的代码来测试下`Poker`类。



poker = Poker()
poker.shuffle()
print(poker.cards)


* 定义玩家类。



class Player:
“”“玩家”“”

def \_\_init\_\_(self, name):
    self.name = name
    self.cards = []

def get\_one(self, card):
    """摸牌"""
    self.cards.append(card)

def arrange(self):
    self.cards.sort()

* 创建四个玩家并将牌发到玩家的手上。



poker = Poker()
poker.shuffle()
players = [Player(‘东邪’), Player(‘西毒’), Player(‘南帝’), Player(‘北丐’)]
for _ in range(13):
for player in players:
player.get_one(poker.deal())
for player in players:
player.arrange()
print(f’{player.name}: ‘, end=’')
print(player.cards)


* 执行上面的代码会在`player.arrange()`那里出现异常,因为`Player`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值