簡體   English   中英

Discord.py會員狀態

[英]Discord.py member status

如何替換不止一件事,例如 I did.replace("dnd", "Do Not Disturb") 但如何對“online”、“offline”和“idle”做同樣的事情,這樣我就可以放置表情符號在他們中。

embed.add_field(name="**•Status•**", value=str(member.status).replace("dnd", "Do Not Disturb"), inline=True)

您可以像其他答案所示那樣簡單地鏈接replace方法,盡管我認為這是一種丑陋的做法。

您可以有一個將狀態映射到實際名稱的字典,然后只需使用狀態獲取值:

status_dict = {
    "online": "Online",
    "offline": "Offline", 
    "idle": "Idle",
    "dnd": "Do Not Disturb",
    "invisible": "Invisible"
} # Change the values accordingly

status = status_dict[str(member.status)]
embed.add_field(name="**Status**", value=status)

這似乎更像是一個 python 問題而不是 discord.py 但是......

str.replace用第二個參數替換所有 substring 出現,並返回新字符串。 由於它返回新字符串,因此您可以在另一個之上堆疊一次,從而允許您執行以下操作:

str(member.status).replace("dnd", "Do Not Disturb").replace("idle", "Idle").replace("online", "Online")

但是,這有點笨重,所以我會創建一個包含替換的列表,然后循環遍歷列表並替換。

mstatus = str(member.status)
l = [
  ["dnd", "Do Not Disturb"],
  ["idle", "Idle"],
  ["online", "Online"]
]

for status in l:
    mstatus = mstatus.replace(status[0], status[1])

你基本上可以做同樣的事情,因為.replace()將返回一個字符串。

status = str(member.status)
formatted = status.replace("dnd", "Do Not Disturb").replace("online", "SomethingOnline").replace("offline", "SomethingOffline")

embed.add_field(
  name="**•Status•**",
  value=str(member.status).replace("dnd", "Do Not Disturb"),
  inline=True
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM