如何从函数中获取类函数列表__getattr__
?
Python v2.7 如果重要的话。
尝试在dir
内部使用__getattr__
会导致无限递归。
class Hal(object):
def __getattr__(self, name):
print 'I don\'t have a %s function' % name
names = dir(self) # <-- infinite recursion happens here
print 'My functions are: %s' % ', '.join(names)
exit()
def close_door(self):
pass
x = Hal()
x.open_door()
这是我想要的输出:
I don't have a open_door function
My functions are: close_door, __getattr__, __init__, __doc__, ...
任何其他能让我得到我想要的输出的解决方案都可以正常工作。我想在函数不存在的情况下进行模糊字符串匹配,以尝试建议用户可能的意思。