Warum sollten die Implementierer wählen, sys.path
in eine Liste im Gegensatz zu einer geordneten Menge zu machen?Warum ist sys.path eine Liste?
Wenn Sie sys.path
als Liste haben, besteht die Möglichkeit, mehrere Duplikate im Pfad zu haben, was die Suchzeit für Module verlangsamt.
Ein künstliches Beispiel wäre das folgende dumme Beispiel
# 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
aus den Kommentaren und Antworten Zusammengefasst gegeben:
Aus den Antworten unter dem scheint eine Liste ist eine einfache Struktur, die 99% Griffe Es ist nicht mit einem Sicherheitsmerkmal zur Vermeidung von Duplikaten ausgestattet, es kommt jedoch mit einer primitiven Priorisierung, die der Index des Elements in der Liste ist, in dem Sie leicht die höchste Priorität durch Anhängen oder die niedrigste Priorität durch Anhängen festlegen können.
Das Hinzufügen einer reicheren Priorisierung, d. H. Das Einfügen vor diesem Element würde selten als Schnittstelle zu diesem verwendet werden, wäre zu viel Aufwand für eine einfache Aufgabe. Wie die akzeptierte Antwort besagt, gibt es keinen praktischen Bedarf für etwas Fortgeschritteneres, das diese zusätzlichen Anwendungsfälle abdeckt, wie es die Menschen der Geschichte gewohnt sind.
aber die Reihenfolge ist wichtig ... ('set's sind ungeordnet). –
Nicht sicher, ich folge ... warum würde es als Liste erstellen Duplikate ?? – grail
Sicher, es ist möglich, Duplikate in der Liste zu haben, aber das wäre deine Schuld, wenn du vor dem Hinzufügen nicht nachprüfst. Plus, es ist ein ziemlich kleines Problem.Überlegen * nix hat die Notwendigkeit, Duplikate für fünfzig Jahre aus 'PATH' zu entfernen, ebenfalls nicht gefunden. Halten Sie es einfach hält es schnell. – pbuck