'str'对象不可调用 刽子手命令 不和谐



所以我在做一个hangman命令,但它只说'str' object is not callable这个错误消息是在我完善命令时弹出的,请告诉我如何修复

这是我的刽子手代码

gameStart = False
words = ["words i put"]
pickedword = "No picked words currently!"

def word_selected_dashed():
if pickedword == "No picked words currently!":
return
else:
global selectedword
selectedword = []
for i in range(len(pickedword)):
selectedword.append('?')
return ''.join(selectedword)
@client.command()
async def hangman(ctx):
global gameStart
global pickedword
global trials

pickedword = random.choice(words)
if gameStart == True:
await ctx.send("There is a game ongoing please use `sus hangmanstop` to stop")
else: 
gameStart = True
await ctx.send("Game Started")
lettercount = 0
for letters in pickedword:
lettercount += 1  
await ctx.send(f"This word has {lettercount} letters!")
word_selected_dashed()
@client.command()
async def guess(ctx, letterput : str):
getattr(str, 'lower')
letter = letterput.lower()
if pickedword == "No picked words currently!":
await ctx.send("No game found! Please use `sus hangman` to start a game!")
return False
if letter in alphabet and gameStart == True:
print(letter)
elif letter == pickedword:
await ctx.send("You guess the word!")
await hangmanstop(ctx)
return
elif gameStart == False:
await ctx.send("You havent started a game!")
return False
global guessed_word
global word_selected_dashed
global trials
trials = 7
word_selected_dashed = word_selected_dashed()
gussed_word = list(word_selected_dashed)
if letter in pickedword:
for i in range(len(pickedword)):

if list(pickedword)[i] == letter:
gussed_word[i] = letter
await ctx.send(''.join(gussed_word))
elif letter not in pickedword:
await ctx.send('wrong!')
trials -= 1
await ctx.send(f"You only have {trials} guesses left!")
if trials == 0:
await ctx.send("You lost!")
await hangmanstop(ctx)
return
@client.command()
async def hangmanstop(ctx):
global gameStart
if gameStart == True:
gameStart = False
await ctx.send("Current game stopped!")
else:
await ctx.send("No game found | Please use `sus hangman` to start a game!")

idk是什么出了问题我仔细查看了终端,但找不到出错的代码我知道这是一个str错误,但每次我试图修复相同的错误时,请帮助我

您正在guess方法的第一行查找可调用的str“lower”属性,如下所示。

async def guess(ctx, letterput : str):
getattr(str, 'lower')

完全删除getattr()调用。

最新更新