如何调用python for pytest的其他类中的函数

如何调用python for pytest的其他类中的函数,python,function,unit-testing,testing,pytest,Python,Function,Unit Testing,Testing,Pytest,我试图通过在ETL.CSVDatasource import CSVDatasource中键入以下代码来调用测试类中CSVDatasource中的方法,并调用必要的方法,但我一直收到类似以下错误:必须使用CSVDatasource实例作为第一个参数来调用unbound method preprocess_col()(取而代之的是DataFrame实例) ->我的编码路径的图像 任何人都可以指导我在另一个类中调用该方法,以便我可以调用该方法并在我的测试类中进行测试? 谢谢。通常,在调用类的方法之前

我试图通过在ETL.CSVDatasource import CSVDatasource中键入以下代码来调用测试类中CSVDatasource中的方法,并调用必要的方法,但我一直收到类似以下错误:必须使用CSVDatasource实例作为第一个参数来调用unbound method preprocess_col()(取而代之的是DataFrame实例)

->我的编码路径的图像

任何人都可以指导我在另一个类中调用该方法,以便我可以调用该方法并在我的测试类中进行测试?
谢谢。

通常,在调用类的方法之前必须创建类的实例。例如

class Person:
    def __init__(self,name):
        self.name=name

    def who(self):
        print 'I am {}'.format(self.name)

    @staticmethod
    def species():
        print 'I am human.'
如果我们想在类
Person
中调用方法
who
,我们必须创建一个类实例,如下所示:

if __name__=='__main__':
    p1=Person('Qing Yong')
    p1.who() #I am Qing Yong
但是,如果一个方法不需要
self
,但您希望将其放入类中,因为此方法可能在某些意义上与您的类密切相关。您可以使用decorator
@staticmethod
将其声明为静态方法,就像方法
种类

这个静态方法可以通过实例调用,也可以直接通过类调用,如下所示

if __name__=='__main__':
    p1.species() #I am human.
    Person.species() #I am human.
根据代码的上下文,您可以选择在类中使用该方法的任何一种方式