python3 | 获取类中除内置方法外的所有方法名

Posted by Others on September 16, 2021

  最近工作遇到了点小麻烦,原本的结构不满足于现有需求了,但是又不想改变原有的结构,所以重新写了一个类。但是有个问题,我想获取类中所有自定义方法的列表长度,走投无路搜了百度发现以下的方法可以解决这个问题。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Menu:

    def __init__(self):
        pass

    def updateProject(self):
        pass

    def restartProject(self):
        pass

    def restartTomcat(self):
        pass

    def stopTomcat(self):
        pass

    def startTomcat(self):
        pass

    def methods(self):
        return(list(filter(lambda m: not m.startswith("__") and not m.endswith("__") and callable(getattr(self, m)), dir(self))))

if __name__ == '__main__':
    print(Menu().methods()) 
    # ['methods', 'restartProject', 'restartTomcat', 'startTomcat', 'stopTomcat', 'updateProject']