<pre class="lang-py prettyprint-override"><code>>>> message = "I would like to go home"
>>> words = ["home", ...]
>>> message in words
False
</code></pre>
<p>您正在将整个消息内容与列表进行比较,如果列表是这样的<code>["I would like to go home", ...]</code>,则结果将是<code>True</code>,但事实并非如此,因为您可以使用<code>any</code>函数</p>
<pre class="lang-py prettyprint-override"><code>>>> message = "I would like to go home"
>>> words = ["home", ...]
>>> any(word in message for word in words)
True
>>> message = "Something else"
>>> any(word in message for word in words)
False
</code></pre>
<p>这和</p>
<pre class="lang-py prettyprint-override"><code>>>> def words_in_message(content: str, words: list[str]) -> bool:
... for word in words:
... if word in content:
... return True
... return False
>>>
>>> message = "I would like to go home"
>>> words = ["home", ...]
>>> words_in_message(message, words)
True
>>> message = "Something else"
>>> words_in_message(message, words)
False
</code></pre>
<p>您的代码应该如下所示</p>
<pre class="lang-py prettyprint-override"><code>world_list = ['home', 'house', 'maison']
@client.listen('on_message')
async def on_message(message):
if any(word in message.content for word in words):
await message.channel.send("i'm coming home")
</code></pre>