Heim  >  Artikel  >  Backend-Entwicklung  >  Fortgeschrittene Python-Hacks oder

Fortgeschrittene Python-Hacks oder

王林
王林Original
2024-07-24 09:26:41758Durchsuche

Advanced Python Hacks ou

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


1. Verwenden Sie Listenverständnisse für prägnanten Code

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]

2. Nutzen Sie Generatorausdrücke für die Speichereffizienz

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)

3. Verwenden Sie enumerate() für die Indexverfolgung

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}")

4. Vereinfachen Sie die String-Verkettung mit join()

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

5. Verwenden Sie __slots__, um die Speichernutzung zu reduzieren

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

6. Verwenden Sie contextlib.suppress, um Ausnahmen zu ignorieren

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()

7. Nutzen Sie das itertools-Modul

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')))

8. Verwenden Sie functools.lru_cache für das Caching

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)

9. Meisterdekorateure für Cleaner Code

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()

10. Verwenden Sie den For-Else-Trick

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")

Abschluss

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn