在Python中获取当前文件中类中的所有类方法?

在Python中获取当前文件中类中的所有类方法?,python,Python,我已经看到: 。。。基于此,我举了一个例子: #/usr/bin/env蟒蛇3 导入系统,操作系统 从PyQt5.QtWidgets导入* 从PyQt5.QtGui导入* 进口检验 # https://stackoverflow.com/q/18907712 ; https://stackoverflow.com/q/34439 def get_此_文件_函数(): funclist=[] 对于名称,inspect.getmembers(sys.modules[_name__])中的ob

我已经看到:

。。。基于此,我举了一个例子:

#/usr/bin/env蟒蛇3
导入系统,操作系统
从PyQt5.QtWidgets导入*
从PyQt5.QtGui导入*
进口检验
# https://stackoverflow.com/q/18907712 ; https://stackoverflow.com/q/34439
def get_此_文件_函数():
funclist=[]
对于名称,inspect.getmembers(sys.modules[_name__])中的obj:
如果检查ISJ功能(obj):
funclist.append(名称)
elif检查isclass(obj):
对于attrname,inspect.getmembers(obj)中的attr:
如果inspect.ismethod(getattr(obj,attrname,None)):
funclist.append(attrname)
返回函数列表
类MyMainWindow(QMainWindow):
定义初始化(自):
超级(MyMainWindow,self)。\uu初始化
self.init_GUI()#NB:Blocks,因为self.show()!
def初始图形用户界面(自身):
自设置几何体(50、50、850、650)
self.setWindowTitle(“窗口标题”)
打印(“获取此文件函数:\n{}”。格式(获取此文件函数())
self.show()#块
################################主要
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=QApplication(sys.argv)
myGUI=MyMainWindow()
sys.exit(app.exec_())
。。。但是,当我运行此程序时,我得到的打印结果是:

获取此文件功能:
['get_this_file_functions']
。。。也就是说,我没有得到
MyMainWindow.\uuu init\uuu
也没有
MyMainWindow.init\uGUI


那么,如何获取文件中定义的所有函数,包括所有定义的类方法呢?

在Python3上,对碰巧是函数的类的属性调用
inspect.ismethod
将始终为False,因为它只是一个普通函数<代码>函数。当作为实例的属性访问时,仅返回方法对象

如果您想获得类的所有“方法”,只需使用
inspect.isfunction

>>A类:
...     定义初始化(自我):通过
... 
>>>A.._uinit__
>>>检查方法(A.\uuuu初始)
假的
>>>inspect.isfunction(A.。\uuuuu init\uuuuuuu)
真的
>>>inspect.ismethod(A()。\uuuuu init\uuuuu)
真的

这是否回答了您的问题?谢谢,
inspect.isfunction
非常有效!