首页 > 解决方案 > 关键字不能是表达式?

问题描述

在我的代码中,我正在尝试做:

if "!variants" in args[0]:
        variants = client.user.party.me.create_variants(
           args[2]=args[3]
        )

        await client.user.party.me.set_outfit(
            asset=args[1],
            variants=variants
        )

        await message.reply('Skin set to' + args[1])

对于 args[2],它可以有很多东西,例如clothing_coloror material,我能找到的唯一解决方案是为每个不同的 args[2] 添加不同的命令,这不是很有效,我宁愿将代码缩短为 1 个命令, 是:

if ("!variants" in args[0]) & ("clothing_color" in args[2]):
        variants = client.user.party.me.create_variants(
            clothing_color=args[3]
        )

        await client.user.party.me.set_outfit(
            asset=args[1],
            variants=variants
        )

        await message.reply('Skin set to' + args[1])

if ("!variants" in args[0]) & ("material" in args[2]):
        variants = client.user.party.me.create_variants(
            material=args[3]
        )

        await client.user.party.me.set_outfit(
            asset=args[1],
            variants=variants
        )

        await message.reply('Skin set to' + args[1])

或者是第二种方法,我可以解决这个问题的唯一方法?

标签: python

解决方案


您可以使用re

if "!variants" in args[0] and re.search("clothing_color|material", args[2]):

如果找到任何一个单词,这将返回一个Match对象,如果没有,则返回 None


推荐阅读