用于检查 Python 属性的类似 get() 的方法

A get() like method for checking for Python attributes(用于检查 Python 属性的类似 get() 的方法)
本文介绍了用于检查 Python 属性的类似 get() 的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

如果我有一个字典 dict 并且我想检查 dict['key'] 我可以在 try 中这样做块(bleh!)或使用 get() 方法,将 False 作为默认值.

If I had a dictionary dict and I wanted to check for dict['key'] I could either do so in a try block (bleh!) or use the get() method, with False as a default value.

我想对 object.attribute 做同样的事情.也就是说,如果尚未设置,我已经有返回 False 的对象,但这会给我类似

I'd like to do the same thing for object.attribute. That is, I already have object to return False if it hasn't been set, but then that gives me errors like

AttributeError: 'bool' 对象没有属性 'attribute'

AttributeError: 'bool' object has no attribute 'attribute'

推荐答案

hasattr 相比,dict.get(key, default) 更直接的类比是 getattr.

A more direct analogue to dict.get(key, default) than hasattr is getattr.

val = getattr(obj, 'attr_to_check', default_value)

(其中 default_value 是可选的,如果未找到则在没有属性时引发异常.)

(Where default_value is optional, raising an exception on no attribute if not found.)

对于您的示例,您将传递 False.

For your example, you would pass False.

这篇关于用于检查 Python 属性的类似 get() 的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I make a list of all members in a discord server using discord.py?(如何使用 discord.py 列出不和谐服务器中的所有成员?)
how to change discord.py bot activity(如何更改 discord.py 机器人活动)
Issues with getting VoiceChannel.members and Guild.members to return a full list(让 VoiceChannel.members 和 Guild.members 返回完整列表的问题)
Add button components to a message (discord.py)(将按钮组件添加到消息(discord.py))
on_message() and @bot.command issue(on_message() 和@bot.command 问题)
How to edit a message in discord.py(如何在 discord.py 中编辑消息)