Heim >Backend-Entwicklung >Python-Tutorial >Fortgeschrittene Python-Hacks oder
Python ist eine vielseitige und leistungsstarke Sprache, und die Beherrschung ihrer erweiterten Funktionen kann Ihre Codierungseffizienz und Lesbarkeit erheblich verbessern. Hier sind einige fortgeschrittene Python-Tipps, die Ihnen helfen, besseren, saubereren und effizienteren Code zu schreiben.
Ich habe am Wochenende zwei kleine Bücher zum Thema Python geschrieben, hier sind die Links: (1) https://leanpub.com/learnpython_inweekend_pt1 & (2) https://leanpub.com/learnpython_inweekend_pt2
Listenverständnisse bieten eine prägnante Möglichkeit, Listen zu erstellen. Sie können häufig herkömmliche For-Schleifen und bedingte Anweisungen ersetzen, was zu saubererem und besser lesbarem Code führt.
# Traditional approach numbers = [1, 2, 3, 4, 5] squared_numbers = [] for num in numbers: squared_numbers.append(num ** 2) # Using list comprehension squared_numbers = [num ** 2 for num in numbers]
Generatorausdrücke ermöglichen es Ihnen, Iteratoren auf prägnante Weise zu erstellen, ohne die gesamte Sequenz im Speicher zu speichern, wodurch sie speichereffizienter werden.
# List comprehension (creates a list) squared_numbers = [num ** 2 for num in numbers] # Generator expression (creates an iterator) squared_numbers = (num ** 2 for num in numbers)
Wenn Sie über eine Iteration iterieren und den Index jedes Elements verfolgen müssen, ist die Funktion enumerate() von unschätzbarem Wert.
fruits = ['apple', 'banana', 'cherry'] for index, fruit in enumerate(fruits): print(f"Index: {index}, Fruit: {fruit}")
Die Verwendung der Methode „join()“ zum Verketten von Zeichenfolgen ist effizienter als die Verwendung des Operators „+“, insbesondere bei großen Zeichenfolgen.
fruits = ['apple', 'banana', 'cherry'] fruit_string = ', '.join(fruits) print(fruit_string) # Output: apple, banana, cherry
Standardmäßig speichert Python Instanzattribute in einem Wörterbuch, was erheblichen Speicher verbrauchen kann. Durch die Verwendung von __slots__ kann die Speichernutzung reduziert werden, indem Speicher für einen festen Satz von Instanzvariablen zugewiesen wird.
class Point: __slots__ = ['x', 'y'] def __init__(self, x, y): self.x = x self.y = y
Mit dem Kontextmanager contextlib.suppress können Sie bestimmte Ausnahmen ignorieren und so Ihren Code vereinfachen, indem unnötige Try-Exception-Blöcke vermieden werden.
from contextlib import suppress with suppress(FileNotFoundError): with open('file.txt', 'r') as file: contents = file.read()
Das itertools-Modul bietet eine Sammlung effizienter Funktionen für die Arbeit mit Iteratoren. Funktionen wie Produkt, Permutationen und Kombinationen können komplexe Operationen vereinfachen.
import itertools # Calculate all products of an input print(list(itertools.product('abc', repeat=2))) # Calculate all permutations print(list(itertools.permutations('abc')))
Der Dekorator functools.lru_cache kann die Ergebnisse teurer Funktionsaufrufe zwischenspeichern und so die Leistung verbessern.
from functools import lru_cache @lru_cache(maxsize=32) def fibonacci(n): if n < 2: return n return fibonacci(n-1) + fibonacci(n-2)
Dekoratoren sind ein leistungsstarkes Werkzeug zum Ändern des Verhaltens von Funktionen oder Klassen. Sie können zur Protokollierung, Zugangskontrolle und mehr verwendet werden.
def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello()
Das for-else-Konstrukt in Python ermöglicht es Ihnen, einen else-Block auszuführen, nachdem eine for-Schleife normal abgeschlossen wurde (d. h. ohne auf eine break-Anweisung zu stoßen). Dies kann besonders bei Suchvorgängen nützlich sein.
for n in range(2, 10): for x in range(2, n): if n % x == 0: print(f"{n} equals {x} * {n//x}") break else: # Loop fell through without finding a factor print(f"{n} is a prime number")
Indem Sie diese erweiterten Python-Tipps in Ihren Entwicklungsworkflow integrieren, können Sie effizienteren, lesbareren und wartbareren Code schreiben.
Ob Sie die Speichernutzung mit __slots__ optimieren, String-Operationen mit join() vereinfachen oder die Leistungsfähigkeit des itertools-Moduls nutzen, diese Techniken können Ihre Python-Programmierkenntnisse erheblich verbessern.
Erforschen und üben Sie diese Konzepte weiter, um auf Ihrer Python-Reise die Nase vorn zu haben.
Das obige ist der detaillierte Inhalt vonFortgeschrittene Python-Hacks oder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!