2016-12-08 3 views
0

Я пытаюсь вернуть True из метода isCorrect в метод correctMessage. Но correctMessage не запускается прямо из-за isCorrect вывода «функции isCorrect в 0x000000»Метод не возвращается как True

def correctMessage(isCorrect, tryAnswer, questionAnswer): 
    if isCorrect is True: 
     return print("Yes! You answered \"", 
        str(tryAnswer), "\" and the answer was " + questionAnswer) 

def isCorrect(tryAnswer, questionAnswer): 
    if str(tryAnswer).lower() == questionAnswer: 
     return True 
    return False 

Что я могу сделать для этого, чтобы быть правильно?

+2

Вы должны использовать 'isCorrect()' (с круглыми скобками) для фактической _call_ функции. – Selcuk

+0

Пожалуйста, отметьте один из ответов ниже, если мы вам помогли. – Shadow

ответ

1

Вы не сделали звонокisCorrect, вы протестировали, если сама функция была True. Добавьте парсеры и передайте два аргумента isCorrect.

Примечания: Вам не нужно if с двумя возвратами в isCorrect. return str(tryAnswer).lower() == questionAnswer будет делать то же самое быстрее.

Аналогично, тестирование if x is True: некрасиво, и почти всегда неправильно, просто тест if x: если значение True не действительно важно и отличается от всех других truthy значений (в данном случае, это единственная truthy возможность, так что это быстрее и больше Pythonic, чтобы просто сделать if isCorrect(...):).

1

Вам необходимо вызвать isCorrect с параметрами, которые вы хотите передать. В настоящее время вы проверяете, является ли физическая функция isCorrect равной True, а это не так.

-1
def correctMessage(isCorrect, tryAnswer, questionAnswer): 
    if isCorrect(tryAnswer, quenstionAnswer): 
     print("Yes! You answered \"", str(tryAnswer), "\" and the answer was " + questionAnswer) 

def isCorrect(tryAnswer, questionAnswer): 
    return str(tryAnswer).lower() == questionAnswer: 
Смежные вопросы