_, filenames = default_storage.listdir("entries")
return list(sorted(re.sub(r".md$", "", filename)
for filename in filenames if filename.endswith(".md")))
这里有一个函数,它返回一个名称列表。我试图理解这个函数是如何工作的,但我不明白开头的下划线在做什么。非常感谢。
这是Django文档中的一句话:
listdir(path([source]列出指定路径的内容,返回列表的2元组;第一项是目录第二项是文件。
这意味着代码中的下划线是条目文件夹中的目录列表,您不需要这些目录,因此不使用
在示例代码的上下文中,下划线只是用来表示代码块中其他地方没有使用的变量。
例如,您可以使用变量var
而不是使用下划线
var, filenames = default_storage.listdir("entries")
return list(sorted(re.sub(r".md$", "", filename)
for filename in filenames if filename.endswith(".md")))
但是,您有一个名为var
的变量,该变量在代码块范围内的其他任何地方都不会使用。
你可以忽略这个约定,你的代码仍然可以正常工作,目的只是为了提高可读性,避免许多常用的linter抱怨。