如何验证类属性或方法是否存在
如果这是一条重复的帖子,我先说声抱歉。
我现在使用一种“自己发明”的验证方法,来检查一个类的属性(或者方法)是否存在,然后再去访问它:
if 'methodName' in dir(myClassInstance): result=myClassInstance.methodName()
我想知道有没有更常见的“标准化”的方法来做到这一点。
2 个回答
1
可以使用 hasattr(myClassInstance, 'methodName')
来检查一个对象是否有某个方法。
另一种方法是直接尝试访问这个方法,如果找不到就处理这个错误:
try:
myClassInstance.methodName()
except AttributeError:
# do what you need to do if the method isn't there
你怎么处理这个问题,取决于你为什么要检查这个方法,那个对象通常有没有这个属性,以及如果没有的话你想怎么做。
2
使用 hasattr
这个函数。它会检查一个对象是否有某个名字的属性,如果有就返回 True
,如果没有就返回 False
:
if hasattr(myClassInstance, 'methodName'):
... # Whatever you want to do as a result.