<p>您的问题是,在发送了“Now recording Your time in chat”之后,直到您的案例结束,您才检查<code>user</code>是否已经被跟踪。你得早点检查。以下几点可能对你有用:</p>
<pre><code>people = []
if "!start" in message:
if user in people:
sendMessage(s, "Already tracking time")
else:
sendMessage(s, "Now recording your time in chat.")
print(user.title() + " is now tracking time.")
people.append(user)
print(", ".join(people))
</code></pre>
<p>不久前,我用Python开发了bot(代码实践很差),我猜这个<code>if</code>块是大型<code>handle_message</code>函数中的许多块之一。如果是这样的话,您很可能希望将<code>people = []</code>移出该函数,这样就不会在每个接收到的消息上重新初始化它。你知道吗</p>
<hr/>
<p>要使用<code>sendMessage</code>的模拟实现演示此解决方案,请执行以下操作:</p>
<pre><code>def sendMessage(message):
print('Bot responds: {}'.format(message))
people = []
def handle_message(user, message):
print('{} says: {}'.format(user, message))
if "!start" in message:
if user in people:
sendMessage("Already tracking time")
else:
sendMessage("Now recording your time in chat.")
print(user.title() + " is now tracking time.")
people.append(user)
print(", ".join(people))
if __name__ == '__main__':
for _ in range(2):
handle_message("John", "!start")
</code></pre>
<p><strong>输出</strong></p>
<pre class="lang-none prettyprint-override"><code>John says: !start
Bot responds: Now recording your time in chat.
John is now tracking time.
John
John says: !start
Bot responds: Already tracking time
</code></pre>