如何将提及变量转换为普通变量并将其打印到我的终端

Posted

技术标签:

【中文标题】如何将提及变量转换为普通变量并将其打印到我的终端【英文标题】:How do I convert a mention variable, to a normal variable and print it to my terminal 【发布时间】:2021-04-30 09:25:06 【问题描述】:

我的代码中有一个看起来像这样的变量,唯一的问题是它在我的终端中看起来很丑。这是一张图片。

我希望它显示:获胜者姓名赢得了:prize,而不是显示他们的 Discord ID 并让我的终端看起来很难看。

这是我的代码,它使这个终端成为怪物。

winners = random.sample([user for user in users if not user.bot], k=winerscount)

winnerstosend = "\n".join([winner.mention for winner in winners])




win = await msg.edit(embed = discord.Embed(title = "WINNER" , description = f"Congratulations winnerstosend, you have won **msg4.content**!" , color = discord.Color.blue()))

print(Fore.GREEN + winnerstosend , Fore.WHITE + "has won: " , Fore.GREEN + msg4.content)
print(Style.RESET_ALL)

现在,如果您能帮助我,并将我的错误转化为漂亮的确认信息,我会很高兴的。

【问题讨论】:

【参考方案1】:

嗯,试试winner.display_name 而不是winner.mention

【讨论】:

【参考方案2】:

用户是你的对象吗? 如果是这样,您可以定义一个str dunder-method 并以您想要的方式打印字符串。

请看下面的例子。

user@Inspiron:~/code/advanced_python$ cat str_dunder_example.py 
class A:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f'User self.name aged self.age has won'

if __name__ == '__main__':
    a = A('FakeBlob', 20)
    print(a)
user@Inspiron:~/code/advanced_python$ python str_dunder_example.py 
User FakeBlob aged 20 has won
user@Inspiron:~/code/advanced_python$ 

【讨论】:

我不明白你想问什么。 @ll winerstosend 对象的类是你定义的? 您可以转换为一个类,并通过定义 str 以您喜欢的方式打印它,如上图所示。

以上是关于如何将提及变量转换为普通变量并将其打印到我的终端的主要内容,如果未能解决你的问题,请参考以下文章

获取 Javascript 变量并将其传递给 PHP 函数 [重复]

如何将 int[] 转换为 byte[]

如何将 Python 变量转换为等效的 cobol 组变量?

如何让静态变量在 iOS 应用程序中显示为字段?

如何比较变量并将变量设置为在c#中的一个变量中找到的新文本

如何将 int 转换为十六进制数并将其打印为 c 中的 3 位数字? [复制]