Skip to main content
 首页 » 编程设计

python method() 正好接受 1 个参数(给定 2 个)

2025年05月04日16bluestorm

我在 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 

当我使用 id 调用 getFathers(folder_id) 方法时,它给出 getFathers() 恰好接受 1 个参数(给定 2 个)

请帮帮我

请您参考如下方法:

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

def getFathers(self, folder_id): 

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