【问题标题】:dict object is not callable - Python 3dict 对象不可调用 - Python 3
【发布时间】:2020-09-03 02:49:21
【问题描述】:

我正在编写二十一点代码,这是我目前拥有的:


values = {'Two': 2, 'Three': 3, 'Four': 4, 'Five': 5, 'Six': 6, 'Seven': 7, 'Eight': 8, 'Nine': 9, 'Ten': 10,
          'Jack': 10, 'Queen': 10, 'King': 10, 'Ace': 11}

class Hand:

    # This Class will keep tracking of the Player's and Dealer's Hands

    def add_card(self,cards):
        self.cards.append(cards)
        self.value += values(cards.rank)
        if cards.rank == "Ace":
            self.aces += 1 #adds to self.aces
        pass

这是我遇到的错误。

Traceback (most recent call last):
  File "D:/Python/Projects/BlackJack OOP1.py", line 175, in <module>
Round 1 Begins! 
    main()
  File "D:/Python/Projects/BlackJack OOP1.py", line 141, in main
    Human.add_card(Random_Deck.deal())
  File "D:/Python/Projects/BlackJack OOP1.py", line 73, in add_card
    self.value += values(cards.rank)

TypeError: 'dict' object is not callable

有人能指出我正确的方向吗?

编辑:我有一个全局排名变量:

rank = ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace')

【问题讨论】:

  • 如果您尝试使用 card.rank 调用值,请使用 values[card.rank]
  • Ayy 非常感谢,我觉得有点愚蠢,但我没有看到。

标签: python dictionary oop blackjack


【解决方案1】:

你应该用括号而不是括号来索引字典。

values[key]

【讨论】:

  • 你确定这就是 OP 想要做的吗?
猜你喜欢
  • 2016-03-07
  • 2017-02-11
  • 2019-08-09
  • 2020-03-24
  • 2011-10-01
  • 2016-07-07
  • 2019-01-12
  • 1970-01-01
相关资源
最近更新 更多