"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Hacks Python avancés ou

Hacks Python avancés ou

Publié le 2024-07-30
Parcourir:500

Advanced Python Hacks ou

Python est un langage polyvalent et puissant, et la maîtrise de ses fonctionnalités avancées peut améliorer considérablement l'efficacité et la lisibilité de votre codage. Voici quelques conseils Python avancés pour vous aider à écrire un code meilleur, plus propre et plus efficace.

J'ai écrit 2 petits livres à lire ce week-end qui couvrent python, voici les liens : (1) https://leanpub.com/learnpython_inweekend_pt1 & (2) https://leanpub.com/learnpython_inweekend_pt2


1. Utilisez les compréhensions de liste pour un code concis

Les compréhensions de listes offrent un moyen concis de créer des listes. Ils peuvent souvent remplacer les boucles for et les instructions conditionnelles traditionnelles, ce qui donne un code plus propre et plus lisible.

# 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. Tirez parti des expressions du générateur pour l’efficacité de la mémoire

Les expressions génératrices vous permettent de créer des itérateurs de manière concise sans stocker la séquence entière en mémoire, ce qui les rend plus efficaces en mémoire.

# 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. Utilisez enumerate() pour le suivi des index

Lors d'une itération sur un itérable et de la nécessité de suivre l'index de chaque élément, la fonction enumerate() est inestimable.

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

4. Simplifiez la concaténation de chaînes avec join()

L'utilisation de la méthode join() pour concaténer des chaînes est plus efficace que l'utilisation de l'opérateur, en particulier pour les grandes chaînes.

fruits = ['apple', 'banana', 'cherry']
fruit_string = ', '.join(fruits)
print(fruit_string)  # Output: apple, banana, cherry

5. Utilisez __slots__ pour réduire l'utilisation de la mémoire

Par défaut, Python stocke les attributs d'instance dans un dictionnaire, ce qui peut consommer une mémoire importante. L'utilisation de __slots__ peut réduire l'utilisation de la mémoire en allouant de la mémoire à un ensemble fixe de variables d'instance.

class Point:
    __slots__ = ['x', 'y']
    def __init__(self, x, y):
        self.x = x
        self.y = y

6. Utilisez contextlib.suppress pour ignorer les exceptions

Le gestionnaire de contexte contextlib.suppress vous permet d'ignorer des exceptions spécifiques, simplifiant ainsi votre code en évitant les blocs try-sauf inutiles.

from contextlib import suppress

with suppress(FileNotFoundError):
    with open('file.txt', 'r') as file:
        contents = file.read()

7. Utilisez le module itertools

Le module itertools offre un ensemble de fonctions efficaces pour travailler avec des itérateurs. Des fonctions telles que le produit, les permutations et les combinaisons peuvent simplifier des opérations complexes.

import itertools

# Calculate all products of an input
print(list(itertools.product('abc', repeat=2)))

# Calculate all permutations
print(list(itertools.permutations('abc')))

8. Utilisez functools.lru_cache pour la mise en cache

Le décorateur functools.lru_cache peut mettre en cache les résultats d'appels de fonctions coûteux, améliorant ainsi les performances.

from functools import lru_cache

@lru_cache(maxsize=32)
def fibonacci(n):
    if n 



9. Maîtres décorateurs pour un code plus propre

Les décorateurs sont un outil puissant pour modifier le comportement des fonctions ou des classes. Ils peuvent être utilisés pour la journalisation, le contrôle d'accès, etc.

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. Utilisez l’astuce For-Else

La construction for-else en Python vous permet d'exécuter un bloc else une fois qu'une boucle for se termine normalement (c'est-à-dire sans rencontrer d'instruction break). Cela peut être particulièrement utile dans les opérations de recherche.

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

Conclusion

En incorporant ces conseils Python avancés dans votre flux de travail de développement, vous pouvez écrire un code plus efficace, plus lisible et plus maintenable.

Que vous optimisiez l'utilisation de la mémoire avec __slots__, simplifiiez les opérations sur les chaînes avec join() ou exploitiez la puissance du module itertools, ces techniques peuvent améliorer considérablement vos compétences en programmation Python.

Continuez à explorer et à mettre en pratique ces concepts pour garder une longueur d'avance dans votre parcours Python.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/hisham_elamir/10-advanced-python-hacks-4-you-j2o?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3