构造函数和使用方法

时间:2014-04-02 14:27:14

标签: python methods

我创建了以下构造函数:

class Analysis:

    def __init__(self, file_list, tot_col, tot_rows):
        self.file_list = file_list
        self.tot_col = tot_col
        self.tot_rows = tot_rows

然后我从同一个文件中调用full_analysis()方法calc_total_rows()

def full_analysis(self):
        """Currently runs all the analysis methods"""
        print('Analysing file...\n' +
              '----------------------------\n')
        calc_total_rows()

我从另一个文件调用full_analysis()但是发生了错误,说明calc_total_rows()没有定义,方法就在它下面。 我对Python缺乏经验但是我试图重新安排代码并添加“自我”。在各个地方无济于事。

另一个文件确实符合构造函数的要求,如果我删除calc_total_rows()方法,则运行打印行。但是我不希望单独调用每个方法,并且想调用一个运行它们的方法。

2 个答案:

答案 0 :(得分:2)

如果calc_total_rows是您的问题所暗示的实例方法,那么您需要从self.calc_total_rows()内调用full_analysis。与其他一些语言不同,Python在方法范围内没有隐式实例引用;您必须从self显式检索成员方法。

答案 1 :(得分:0)

我希望我早点找到这个。

为了解决这个问题,我不得不在方法前面使用 self

在我的例子中:

def full_analysis(self):
        """Currently runs all the analysis methods"""
        print('Analysing file...\n' +
              '----------------------------\n')
        self.calc_total_rows()

这很有效。