调用Python TypeError unbound方法时必须使用实例作为第一个参数

2024-10-06 16:13:18 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着做一个21点函数,抽两张牌,然后合计总数。我一直收到这个错误。在

Traceback (most recent call last):
  File "C:/Users/koopt_000/PycharmProjects/BlackJack/PlayBlackJack.py", line 36, in <module>
game()
  File "C:/Users/koopt_000/PycharmProjects/BlackJack/PlayBlackJack.py", line 29, in game
    card1 = Deck.deal()
TypeError: unbound method deal() must be called with Deck instance as first argument (got nothing instead)   

这是我的全部代码。在

^{pr2}$

是不是因为我真的很困惑而错过了什么。 编辑:我一直收到这个错误。在

Traceback (most recent call last):
  File "C:/Users/koopt_000/PycharmProjects/BlackJack/PlayBlackJack.py", line 33, in <module>
    print gameDeck.deal()
AttributeError: 'NoneType' object has no attribute 'deal'

Process finished with exit code 1

Tags: inpymost错误linecallusersfile
1条回答
网友
1楼 · 发布于 2024-10-06 16:13:18

Deck是一个类,而不是一个对象

gameDeck.deal()

会有用的

让我详细说明一些-调用类作为函数Deck()创建类的对象,通过该对象可以调用类方法-如上所述。在

Deck是对类的引用,只有类方法可以通过类引用调用。在

关于“参数数目”的快速说明。与C++ <强><<强>不同,Python在方法中没有对象实例的保留字。你必须在方法定义中显式地定义它——无所不在的self(这实际上是一个约定,而不是一个保留字)。在

所以,当你调用一个对象的方法时,例如

^{pr2}$

playerHand是第一个参数,card1是第二个参数

关于缩进-它们在代码中可能是可以的,但是它们在这里看起来并不正确。也许,你的代码里有标签?必须用空格代替。谷歌怎么做

相关问题 更多 >