如何调用python for pytest的其他类中的函数
我试图通过在ETL.CSVDatasource import CSVDatasource中键入以下代码来调用测试类中CSVDatasource中的方法,并调用必要的方法,但我一直收到类似以下错误:必须使用CSVDatasource实例作为第一个参数来调用unbound method preprocess_col()(取而代之的是DataFrame实例) ->我的编码路径的图像 任何人都可以指导我在另一个类中调用该方法,以便我可以调用该方法并在我的测试类中进行测试?如何调用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实例) ->我的编码路径的图像 任何人都可以指导我在另一个类中调用该方法,以便我可以调用该方法并在我的测试类中进行测试? 谢谢。通常,在调用类的方法之前
谢谢。通常,在调用类的方法之前必须创建类的实例。例如
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.
根据代码的上下文,您可以选择在类中使用该方法的任何一种方式