Python 3.x 在这种情况下ux做了什么。(Python/Django)
在声明文件名之前,我一直在绞尽脑汁试图弄清楚下划线和逗号在以下代码中的作用:Python 3.x 在这种情况下ux做了什么。(Python/Django),python-3.x,django,Python 3.x,Django,在声明文件名之前,我一直在绞尽脑汁试图弄清楚下划线和逗号在以下代码中的作用: def list_entries(): """ Returns a list of all names of encyclopedia entries. """ _,filenames = default_storage.listdir("entries") return list(sorted(re.sub(r"\.md$&q
def list_entries():
"""
Returns a list of all names of encyclopedia entries.
"""
_,filenames = default_storage.listdir("entries")
return list(sorted(re.sub(r"\.md$", "", filename)
for filename in filenames if (filename.endswith(".md") and filename != ("EntryNotFound.md"))))
我知道下划线可以用作一次性变量或存储最后一个名为的变量。但我看不出这在这里有什么意义。序列解包在这里被用来抓取第二个项目,而“扔掉”第一个项目。这基本上相当于:
stuff = default_storage.listdir("entries")
filenames = stuff[1]
del stuff # This could be omitted
之所以使用下划线,是因为必须存在某些东西才能通过解包来命名第二个元素,但不需要解包的第一个值。这里使用序列解包来获取第二个项目,同时“丢弃”第一个项目。这基本上相当于:
stuff = default_storage.listdir("entries")
filenames = stuff[1]
del stuff # This could be omitted
之所以使用下划线,是因为必须存在某些内容才能通过解包命名第二个元素,但不需要解包的第一个值。与
os.listdir
不同,它的第一个条目是目录列表,第二个条目是文件列表。正如您所提到的,下划线在这里用作一次性变量。不同于os.listdir
,它的第一个条目是目录列表,第二个条目是文件列表。正如您所提到的,下划线在这里用作一次性变量。它是一个一次性变量,用于。如果listdir
函数返回一个包含两个元素的iterable,第一个元素将分配给\ucode>变量,第二个元素分配给文件名。例如,2元组、包含两个项目的列表、包含两个字符的字符串等
在这种特定情况下,返回一个2元组:
listdir(路径)
列出指定路径的内容,返回
列表;第一项是目录,第二项是
文件。适用于无法提供此类功能的存储系统
在列表中,这将引发一个NotImplementedError
因此,这意味着我们解压2元组,将目录列表分配给\ucode>变量,将文件列表分配给filenames
变量。这是一个用于。如果listdir
函数返回一个包含两个元素的iterable,第一个元素将分配给\ucode>变量,第二个元素分配给文件名。例如,2元组、包含两个项目的列表、包含两个字符的字符串等
在这种特定情况下,返回一个2元组:
listdir(路径)
列出指定路径的内容,返回
列表;第一项是目录,第二项是
文件。适用于无法提供此类功能的存储系统
在列表中,这将引发一个NotImplementedError
因此,这意味着我们将解压2元组,将目录列表分配给\ucode>变量,将文件列表分配给filenames
变量。啊,这很有意义。谢谢你的明确回答。啊,这很有道理。谢谢你清楚的回答。谢谢你花时间。现在说得通了谢谢你花时间。现在有道理了