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

0 投票
2 回答
1016 浏览
提问于 2025-04-18 00:28

如果这是一条重复的帖子,我先说声抱歉。
我现在使用一种“自己发明”的验证方法,来检查一个类的属性(或者方法)是否存在,然后再去访问它:

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.

撰写回答