我正在嘗試用python制作一個文字游戲。但是,當我運行以下代碼時,我得到一個TypeError: print_guess() takes 1 positional argument but 2 were given.
from colorama import init, Fore, Back, Style
class game:
def __init__(self, guess, answer):
self.guess = guess
self.answer = answer
def get_eval(self): # shortened version of full get_eval() function.
output = [0,0,0,0,0]
for letter in range(5):
if self.answer[letter] == self.guess[letter]: # check if correct letter is in the correct place.
output[letter] = 2
return tuple(output)
def print_guess(self):
colors = ['BLACK', 'YELLOW', 'GREEN']
for i in range(5):
colour = getattr(Back, colors[self.get_eval(self)[i]]) # TypeError: get_eval() takes 1 positional argument but 2 were given
print(Style.BRIGHT Fore.WHITE colour self.guess[i].upper(), end=' ')
game_dis = game('guess', 'words')
game_dis.print_guess(game_dis.guess) # TypeError: print_guess() takes 1 positional argument but 2 were given`
uj5u.com熱心網友回復:
您將“self”引數作為方法的引數。這基本上是您的類物件的實體。這是一個引數,您不必自己傳遞,而是自動傳遞。所以當你給出一個額外的論點時,你給出了兩個。
將您的代碼更改為:
game_dis.print_guess()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/481945.html
下一篇:.Net未定義物件型別
