gpt4 book ai didi

Python递归追加列表函数

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:12 24 4
gpt4 key购买 nike

递归函数有问题,应该相对简单,但似乎不能正确。

我有一个文件夹结构,其中的文件夹可以包含其他文件夹、图像或文件。与每个文件夹相关联的都有权限。我想让我的函数递归地构建与每个文件夹关联的权限列表。

我有一个函数 has_read_permission(request) 如果文件夹有权限则返回 True 否则返回 False

我已经构建了一个这样的函数:

def get_child_perms(self, folder, request, perm_list):
# Folder contains other folders
if folder.get_children():
# For every sub-folder
for subfolder in folder.get_children():
return perm_list.append(self.get_child_perms(subfolder, request, perm_list))
else:
# If folder doesn't have sub-folders containing folders
return [folder.has_read_permission(request)]

我一直没有得到

给定这样的文件夹:

Folder (allowed) - Wont check this one
|_First Folder (allowed)
| |_First sub Folder (restricted)
| | |_File
| | |_File
| | |_Image
| |__Second Sub Folder (allowed)
|_Second Folder (allowed)

然后运行 ​​get_child_perms() 会返回[真、假、真、真]甚至[正确,[错误,正确],正确]

编辑

忽略编辑 -> 问其他问题 Python Recursive function missing results

改变了一点,

def get_child_perms(self, folder, request, perm_list):
if folder.get_children():
for subfolder in folder.get_children():
perm_list.append(self.get_child_perms(subfolder, request, perm_list))
return perm_list
else:
return [folder.has_read_permission(request)]

获得:

[[True], [...], [True], [...], [...], [True], [True], [True], [True], [True], [True], [True], [True], [...], [True], [...]]

Admin
-Folder 1
- Files
-Folder 2
- Files
-Folder 3
- Files
-Folder 4
- SubFolder 1
-SubSubFolder 1
- Files
- Files
- SubFolder 2
- SubSubFolder 2
- Files
- Files
-Folder 5
- SubFolder 3
- Files
- SubFolder 4
- Files
- SubFolder 5
-Files
- Files
-Folder 6
- Files
-Folder 7
- SubFoler 6
- Files
- Files
-Folder 8
- Files

最佳答案

for subfolder in folder.get_children():
perm_list.append(self.get_child_perms(subfolder, request, perm_list))
return perm_list

.append 到位。它不返回任何东西。所以你得到的是 None

关于Python递归追加列表函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com