从同一个类函数调用类函数而不在python中使用self

时间:2014-02-26 12:24:03

标签: python

我需要在python中从同一个类的另一个方法调用一个方法。

由于某些限制,我无法使用自己。

当我试图做以下时。

def get_report_by_region(self, report_type, ids, business_unit, region):
    if report_type == "courses":
        request_name = "_get_reports_course_region"
    elif report_type == "certifications":
        request_name = "_get_reports_certificate_region"
    elif report_type == "learning_path":
        request_name = "_get_reports_learning_path_region"
    data = {
        'ids': ids,
        'businessunit': business_unit,
        'regioncode': region}
    result = self.get_individual_report_by_region(data,request_name)
    return result
@staticmethod
@cached_by_signature(time=memcached.MINUTE)
def  get_individual_report_by_region(data,request_name):
    result = MoodleClient.get(request_name, params=data)
    return result

我收到错误

 result = MoodleClient.get(request_name, params=data)
TypeError: unbound method get() must be called with MoodleClient instance as first argument (got str instance instead)

所有上述方法都在类

中定义
MoodleClient

1 个答案:

答案 0 :(得分:1)

该错误表示get()方法是一种实例方法。

它需要以与get_individual_report_by_region()相同的方式保持静态,或者您需要提供MoodleClient的实例。

你必须考虑它是否可以是静态方法 - 如果你需要一个实例状态,那么就不能使它成为静态。