如何验证Class属性或方法是否存在

时间:2014-03-29 20:15:19

标签: python

如果这是转发,我会向前致歉。 我目前正在使用以下“自发明”验证方法来检查Class的属性(或方法)是否存在,然后再尝试访问它:

if 'methodName' in dir(myClassInstance): result=myClassInstance.methodName()

我想知道是否有更常见的“标准化”方式来做同样的事情。

2 个答案:

答案 0 :(得分:2)

使用hasattr。如果给定对象具有给定名称作为属性,则返回True,否则False

if hasattr(myClassInstance, 'methodName'):
    ...  # Whatever you want to do as a result.

答案 1 :(得分:1)

使用hasattr(myClassInstance, 'methodName')

另一种可能性是尝试访问它并处理异常(如果它不存在):

try:
   myClassInstance.methodName()
except AttributeError:
   # do what you need to do if the method isn't there

你将如何处理这个问题取决于你进行检查的原因,对象没有那个属性的常见程度,以及你不想做的事情。