PyDoc定位方法找到类,但是方法在那里吗?

时间:2018-07-30 10:45:12

标签: python-2.7 locate pydoc

我有一个名为customclass的基类,该基类动态加载第二个类并在其上调用方法。我在这里使用第二个答案:How to dynamically load a Python class来实现这一点,在我的自定义类中动态加载第二个类的方法如下:

def executedf2in(self, dfin1, dfin2):
    custom_class = locate(self.custom_class_name)
    dfresult = custom_class.df2in(dfin1, dfin2, self.custom_params)

这是custom_class代码:

class CustomWork(object):

    def df2in(self, df1, df2, custom_params):
        dfchanged = pd.concat([df1, df2], sort=True)

        return dfchanged

我收到此错误:

File "/home/david/git/testapp/app/etl/customclass.py", line 54, in executedf2in
dfresult = custom_class.df2in(df1, df2, self.custom_params)
AttributeError: 'module' object has no attribute 'df2in'

当我检查创建的CustomWork实例时,它显示在检查窗口的“特殊变量”下,而在CustomWork类下则没有显示任何功能

<module 'app.test.custom_work_test' from '/home/david/git/testapp/app/test/custom_work_test.py'>
    <class 'app.test.custom_work_test.CustomWork'>

如何获取其中定义的函数动态加载类的信息?

1 个答案:

答案 0 :(得分:0)

最后,我发现locate无法使用函数实例化一个类,仅实例化了该类。因此,我将要动态加载的类转换为一个简单的模块,然后实例化了这些函数并使其可执行。