Globals Here的替代方案?

时间:2018-04-11 14:35:25

标签: python python-3.x function global

我正在制作一个代码,允许用户在计算机上玩Pontoon(21)。

作为其中的一部分,我正在使用一个函数,从名为deck的列表中为计算机选择随机卡(每三轮随机“洗牌”,因此该卡从索引中取出{ {1}}并将其删除)并将其添加到名为0的列表中,该列表充当计算机的“手”。

目前,我正在使用一个名为comp_cards的全局来存储该功能选择的卡片。但是,我听说一般不使用全局变量,所以我想知道是否有任何简单的替代方案。

这是定义函数的代码:

card

这是使用它的代码:

def comp_random_card():
    global card
    card = deck[0]
    deck.pop(0)
    comp_cards.append(card)

编辑:当我选择随机卡时,我需要不止一次地参考它。另外,我不知道是什么 class是(我对Python有点新鲜感。)

1 个答案:

答案 0 :(得分:0)

如何直接归还:

def comp_random_card():
  return deck.pop(0)

上述函数使用pop除了删除项目之外还返回项目的事实。 您的变量现在很好地受到函数范围的限制!

在您的代码中,您不会显示deck的分数,但也应以某种方式处理。你可以做类似的事情:

class Game(object):
    def __init__(self):
       self.deck = code_that_creates_deck()

    def round(self):
        computed_hand = comp_random_card()
        play_round()

    def comp_random_card(self):
        return self.deck.pop(0)