Versuchen Sie, lokale Variablen anstelle globaler Variablen zu verwenden: um die Wartung zu erleichtern, die Leistung zu verbessern und Speicherplatz zu sparen.
Ersetzen Sie Variablen im Modul-Namespace durch lokale Variablen, zum Beispiel ls = os.linesep. Einerseits kann es die Programmleistung verbessern und die Suche nach lokalen Variablen beschleunigen; andererseits können kurze Bezeichner verwendet werden, um lange Modulvariablen zu ersetzen, um die Lesbarkeit zu verbessern.
Bei der Beurteilung des Objekttyps ist die Verwendung von isinstance() die beste, die Verwendung der Objekttypidentität (id()) die zweitbeste und die Verwendung des Objektwerts (type()) ) ist das letzte.
#判断变量num是否为整数类型 type(num) == type(0) #调用三次函数 type(num) is type(0) #身份比较 isinstance(num,(int)) #调用一次函数
Fügen Sie den Inhalt wiederholter Vorgänge nicht als Parameter in Schleifenbedingungen ein, um wiederholte Vorgänge zu vermeiden.
#每次循环都需要重新执行len(a) while i < len(a): statement #len(a)仅执行一次 m = len(a) while i < m: statement
Wenn Sie eine Funktion oder ein Objekt Y in Modul X verwenden müssen, sollten Sie direkt from X import Y anstelle von import X.Y verwenden. Auf diese Weise kann bei Verwendung von Y eine Abfrage reduziert werden (der Interpreter muss nicht zuerst das X-Modul finden und dann im Wörterbuch des X-Moduls nach Y suchen).
Die Suchgeschwindigkeit von Mappings (z. B. Diktat usw.) ist viel schneller als bei bedingten Anweisungen (z. B. if usw.). In Python gibt es auch keine Select-Case-Anweisung.
#if查找 if a == 1: b = 10 elif a == 2: b = 20 ... #dict查找,性能更优 d = {1:10,2:20,...} b = d[a]
Bei Sequenzen (Str, Liste, Tupel usw.) ist das direkte Iterieren von Sequenzelementen schneller als das Iterieren des Index von Elementen.
a = [1,2,3] #迭代元素 for item in a: print(item) #迭代索引 for i in range(len(a)): print(a[i])
Der Generatorausdruck tut dies nicht, er erstellt eigentlich keine Liste, sondern gibt einen Generator zurück, der bei Bedarf einen Wert erzeugt (verzögerte Berechnung), was speicherschonender ist.
#计算文件f的非空字符个数 #生成器表达式 l = sum([len(word) for line in f for word in line.split()]) #列表解析 l = sum(len(word) for line in f for word in line.split())
6. Zuerst kompilieren und dann aufrufen
Der Mustervergleich für reguläre Ausdrücke ist ähnlich. Es ist auch am besten, das Muster für reguläre Ausdrücke in ein Regex-Objekt zu kompilieren (über die Funktion re.complie()), bevor Sie den Vergleich und den Abgleich durchführen.
7. Programmiergewohnheiten des Moduls
Sie können Testcode in die Funktion main() des Moduls schreiben. Überprüfen Sie im Hauptprogramm den Wert von „main“ (was anzeigt, dass das Modul direkt ausgeführt wird), rufen Sie die Funktion „main()“ auf und führen Sie einen Test durch, wenn es sich um den Namen des Moduls handelt Modul aufgerufen wird), wird kein Test durchgeführt.
Das obige ist der detaillierte Inhalt vonSieben Gewohnheiten zur Verbesserung der Leistung von Python-Programmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!