python方法()只需要1个参数(给定2个)

wru*_*esh 1 python django

我在django app views.py中有这样的课程

from dms.models import Folder, File, FileTag

class GetFamily:

    def getFathers(folder_id):
        if folder_id == None:
            rev_fathers=None
        else:
            fathers=[]
            rev_fathers=[]
            father=Folder.objects.get(id=folder_id)
            fathers.append(father)
            while father.parent_folder_id != None:
                father=Folder.objects.get(id=father.parent_folder_id)
                fathers.append(father)
            rev_fathers=reversed(fathers)
        return rev_fathers

    def getChildrenFolders(folder_id):
        folders=Folder.objects.filter(parent_folder_id=folder_id)
        return folders  

    def getChildrenFiles(folder_id):
        files=File.objects.filter(folder_id=folder_id)
        return files
Run Code Online (Sandbox Code Playgroud)

当我用id调用getFathers(folder_id)方法时,它给getFathers()取1个参数(给定2个)

请帮助我

jua*_*nza 5

getFathers是一个类的方法GetFamily,因此它需要实例的第一个参数.python中的约定是使用self此参数的名称:

def getFathers(self, folder_id):
Run Code Online (Sandbox Code Playgroud)

请注意,函数本身不访问任何类的成员.这通常是一个很好的指标,它不需要是类的方法,或者它将被声明为静态方法使用@staticmethod.