2016-10-08 1 views
0

Я делаю это условие:Объект не отозваны

if ((liste_mois[0]==3) or (liste_mois[0]==6) (liste_mois[0]==9) or (liste_mois[0]==12)) 

я получил: TypeError: «BOOL» объект не вызываемая

+3

Вы пропустили или между ними. Закрытие как опечатка. –

+1

'(liste_mois [0] == 6) (liste_mois [0] == 9)' <- there. Поместите «или» между этими двумя. – idjaw

ответ

1

вы пропустили «или» между ними.

1

Вы получили:

TypeError: 'bool' object is not callable

только потому, что вы делаете что-то вроде этого:

(liste_mois[0]==6) (liste_mois[0]==9) 

, которые могут быть представлены в виде, скажем:

(True) (False) 

и далее:

(True)() 

поэтому в вашем заявлении вы обрабатываете логическое значение (liste_mois[0]==6) как функцию, потому что вы пытаетесь его вызывать. И поскольку логическое значение не является вызываемым, по этой причине вы видите эту ошибку.

Подобный пример (liste_mois[0]==6) (liste_mois[0]==9) может быть:

def something(): 
    pass 

(something)() # <-- this 

Так решение для вас будет поставить or в вашем if состоянии, так:

if ((liste_mois[0]==3) or (liste_mois[0]==6) or (liste_mois[0]==9) or (liste_mois[0]==12)) 

, и я думаю, что это то, что вы хотите.