„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Fortgeschrittene Python-Hacks oder

Fortgeschrittene Python-Hacks oder

Veröffentlicht am 30.07.2024
Durchsuche:863

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 übersichtliche 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

Mit Generatorausdrücken können Sie Iteratoren auf prägnante Weise 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 



9. Meisterdekorateure für Cleaner Code

Dekoratoren sind ein leistungsstarkes Werkzeug zum Ändern des Verhaltens von Funktionen oder Klassen. Sie können zur Protokollierung, Zugriffskontrolle 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

Mit dem for-else-Konstrukt in Python können Sie einen else-Block ausfü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

Durch die Integration dieser erweiterten Python-Tipps in Ihren Entwicklungsworkflow 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.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/hisham_elamir/10-advanced-python-hacks-4-you-j2o?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3