[英]Using optional formatting tokens in python
我有一个 discord.py 机器人,当有人加入公会时会发送消息。 它有一条由管理员使用命令设置的自定义消息。 管理员需要输入 {user} 和 {rules} 以在该消息中提及用户和规则频道。 我正在努力做到这一点,这样他们就不必设置规则或用户,或任何一个。
# Sends welcome message
welcome = cluster.find_one({'id': 'settings'})
welcome_channel = client.get_channel(welcome['welcome_channel'])
welcome_message = welcome['join_message']
rules_channel = client.get_channel(welcome['rules_channel'])
await welcome_channel.send(welcome_message.format(user=member.mention, rules=rules_channel.mention))
离开包含消息。 每当管理员将消息设置为类似
“hello {user}”,它没有规则。
有什么办法可以让格式是可选的?
不带格式。 Format 期望在格式化消息时使用所有值。
如果您愿意稍微更改欢迎消息格式,可以使用模板字符串:
from string import Template
welcome_message = Template(welcome['join_message'])
await welcome_channel.send(welcome_message.safe_substitute(user=member.mention, rules=rules_channel.mention))
这需要 Python 3.2 或更高版本,并且消息变量应为$var
或${var}
。 因此,在您的情况下,消息将是Welcome $user, here are the $rules
或类似的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.