python中的函数属性错误

时间:2014-10-29 08:10:57

标签: python

这是有问题的功能:

def single_letter_guess(guess,word):
    global guessed_letters
    global lives_remaining
    if word.find(guess) == -1:
        guessesLeft -= 0
    guessed_letters = guessed_letters + guess.lower()
    if all_letters_guessed(word):
        return True
    return False

错误来自第四行并显示:

if word.find(guess) == -1:
AttributeError: 'function' object has no attribute 'find'

我仍然是python的新手,并不知道如何解释此错误消息。从技术上讲,它应该在字符串中查找猜测的字母。如果需要更多上下文,我可以提供完整的代码。

1 个答案:

答案 0 :(得分:1)

在您的函数中word是一个传入的函数,因此word.find(guess)导致您的错误。如果您想使用word

find应为字符串

我认为你可能会在某个地方设置word = some_function时丢失了parens所以你设置的单词等于函数而不是返回值。:

In [10]: def foo():
   ....:         return "foo"
   ....: 

In [11]: word = foo # no parens

In [12]: print(word.find("f"))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-12-9db996b190ed> in <module>()
----> 1 print(word.find("f"))

AttributeError: 'function' object has no attribute 'find'

In [13]: word = foo()

In [14]: print(word.find("f"))
0