测试Python类中的特定方法

2024-09-30 22:12:37 发布

您现在位置:Python中文网/ 问答频道 /正文

测试一个类是否定义了特定的方法,最好的(或“Pythonic”)方法是什么?在

这两种方法都有效,但在第二种情况下,我只是尝试访问它并捕捉异常,如果它不存在的话。在

有更好/更正确的方法吗?在

class TestClass(object):
    def TestFunc(self):
        pass



if 'TestFunc' in dir(TestClass):
    print 'yes'
else:
    print 'No'



try:
    if TestClass.__getattribute__(TestClass, 'TestFunc'):
        print 'yes'

except:
    print 'No'

Tags: 方法noselfif定义objectdef情况
2条回答

你很接近。在

请求原谅比请求允许容易。在

try:
    testClassInstance.testFunc()

except AttributeError:
    pass # Ask forgiveness.

不要为这样的事情“预先测试”。假设他们存在并处理他们的缺席。在

使用^{}

class Foo(object):
    def bar():
        pass

assert hasattr(Foo, 'bar')

如果您真的想测试属性是否是方法,可以执行以下操作:

^{pr2}$

相关问题 更多 >