我需要在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
答案 0 :(得分:1)
该错误表示get()
方法是一种实例方法。
它需要以与get_individual_report_by_region()
相同的方式保持静态,或者您需要提供MoodleClient
的实例。
你必须考虑它是否可以是静态方法 - 如果你需要一个实例状态,那么就不能使它成为静态。