Har*_*Har 5 python python-internals
为什么实现者会选择制作sys.path一个列表而不是有序集?
有sys.path一个名单获得了具有路径多个复制,减缓搜索时间为模块的可能性。
一个人为的例子将是以下愚蠢的例子
# instant importing
import os
import sys
for i in xrange(50000):
sys.path.insert(0, os.path.abspath(".")
# importing takes a while to fail
import hello
Run Code Online (Sandbox Code Playgroud)
从给出的评论和答案中总结:
从下面的回复看来,列表是一个简单的结构,可以处理 99% 的每个人的需求,它没有避免重复的安全功能,但它确实带有原始优先级,即列表中元素的索引您可以通过添加轻松设置最高优先级或通过附加设置最低优先级。
添加更丰富的优先级,即在此元素之前插入将很少使用,因为对于一个简单的任务来说,它的接口将是太多的工作。正如公认的答案所述,实际上不需要任何更高级的东西来覆盖这些额外的用例,因为历史上人们已经习惯了这一点。
sys.path集合进行设计的操作 - 检查确切的路径是否在sys.path- 甚至更少,快速完成sys.path的典型用例正是列表的用例:按顺序尝试元素、前置或附加一个总而言之,既有历史原因,也缺乏现实需要。
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |