我正在制造一个Discord机器人,它启动时会在公会文本通道中搜索并检查特定的通道名称。如果我打印出频道列表,它会找到所有频道,尽管如果我尝试if channel.name is "general"
也不会将标志更改为true。
async def on_ready():
print("Bot is ready.")
has_channel = False
for guild in client.guilds:
for channel in guild.text_channels:
print(channel.name)
if channel.name is "general":
has_channel = True
print(has_channel)
这是我的代码,这是输出:
Bot is ready.
general
streaming-updates
welcome
goodbye
streaming-schedules
False
您知道为什么在if语句中它不与true相提并论吗?
答案 0 :(得分:1)
我怀疑channel.name
的类型不是str
,因此is
的计算结果为假。试试:
if str(channel.name) == "general":