Python 中 message.guild.id if message.guild else None 这种表达式,还能写得更简洁吗?

查看 71|回复 6
作者:drymonfidelia   
另外
new_message = {
        'messageId': message.id,
        'authorId': message.author.id,
        'content': message.content,
        'guildId': message.guild.id if message.guild else None
}
如果我想让 authorId 在 message.author 为 None 时直接没有这项,有办法在定义这个 dict 就实现,而不是创建完再 del 或者创建完再加上吗?
Hopetree   
这样的吧
if message.author:
new_message['guildId'] = message.author
hefish   
这个,多写几句不费墨水吧。
drymonfidelia
OP
  
@Hopetree 这样更不简洁了
jfcherng   
是可以, 但不利於靜態分析
getattr(message.guild, 'id', None)
Dece   
pydantic 可以看下这个,BaseModel 类有个方法 [.dict] , 支持传参数 exclude_none=True, 可以将类转为 dict ,并且忽略掉 None 值
renmu   
改用 defaultdict ,应该也许可以
您需要登录后才可以回帖 登录 | 立即注册

返回顶部