2016-08-19 3 views
-3
while True: 
op_list = [] 

for op in client.longPoll(): 
    op_list.append(op) 

for op in op_list: 
    sender = op[0] 
    receiver = op[1] 
    message = op[2] 

    msg = message.text 
    if msg("help"): 
    receiver.sendMessage('why?') 

if msg("help"): 

ТипError: объект 'str' не подлежит вызову, кто-нибудь может мне помочь?ТипError: объект 'str' не вызываемый di python 2.7

+2

этот символ не может быть правильным. 'Истина:' что? Ничего? –

+2

msg («help») почти наверняка ваша проблема - message.text - это строка, и вы пытаетесь вызвать ее с помощью аргумента «help». Если вы хотите проверить, равно ли это, do msg == "help" – James

+1

Этот код не отстутнут правильно, исправьте его, чтобы мы могли сосредоточиться на вашей основной проблеме. Что вы ожидаете 'msg (" help ")' делать? –

ответ

0

Проблема лежит в строке 12. msg - это текст, очевидно, что он не может быть вызываемым. Вы должны, безусловно, сделать равным, если вы хотите сравнить две строки.

if msg == "help": 
    receiver.sendMessage('why?') 
+0

в то время как True: op_list = [] для ора в client.longPoll(): op_list.append (оп) для ора в op_list: отправителя = оп [0] приемник = оп [1] сообщение = оп [2] тзд = message.text если тзд == "помощь": receiver.sendMessage ('почему?') если тзд == «помощь ": ^ IndentationError: unindent не соответствует внешнему уровню отступа –

+0

Можете ли вы поместить этот код в май Вопрос? Не могу понять здесь отступы. – Abhinav

Смежные вопросы