"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Advanced Python Hacks ou

Advanced Python Hacks ou

Publicado em 30/07/2024
Navegar:413

Advanced Python Hacks ou

Python é uma linguagem versátil e poderosa, e dominar seus recursos avançados pode melhorar significativamente a eficiência e a legibilidade de sua codificação. Aqui estão algumas dicas avançadas de Python para ajudá-lo a escrever um código melhor, mais limpo e mais eficiente.

Escrevi 2 pequenos livros para ler no fim de semana que cobrem python, aqui estão os links: (1) https://leanpub.com/learnpython_inweekend_pt1 & (2) https://leanpub.com/learnpython_inweekend_pt2


1. Use compreensões de lista para código conciso

As compreensões de lista oferecem uma maneira concisa de criar listas. Muitas vezes, eles podem substituir loops for tradicionais e instruções condicionais, resultando em um código mais limpo e legível.

# 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. Aproveite as expressões do gerador para eficiência de memória

As expressões geradoras permitem criar iteradores de maneira concisa, sem armazenar a sequência inteira na memória, tornando-os mais eficientes em termos de memória.

# 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. Utilize enumerate() para rastreamento de índice

Ao iterar sobre um iterável e precisar rastrear o índice de cada elemento, a função enumerate() é inestimável.

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

4. Simplifique a concatenação de strings com join()

Usar o método join() para concatenar strings é mais eficiente do que usar o operador, especialmente para strings grandes.

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

5. Use __slots__ para reduzir o uso de memória

Por padrão, Python armazena atributos de instância em um dicionário, o que pode consumir memória significativa. Usar __slots__ pode reduzir o uso de memória alocando memória para um conjunto fixo de variáveis ​​de instância.

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

6. Empregue contextlib.suppress para ignorar exceções

O gerenciador de contexto contextlib.suppress permite que você ignore exceções específicas, simplificando seu código, evitando blocos try-except desnecessários.

from contextlib import suppress

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

7. Utilize o módulo itertools

O módulo itertools oferece uma coleção de funções eficientes para trabalhar com iteradores. Funções como produto, permutações e combinações podem simplificar operações complexas.

import itertools

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

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

8. Use functools.lru_cache para armazenamento em cache

O decorador functools.lru_cache pode armazenar em cache os resultados de chamadas de função caras, melhorando o desempenho.

from functools import lru_cache

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



9. Mestres decoradores para código mais limpo

Decoradores são uma ferramenta poderosa para modificar o comportamento de funções ou classes. Eles podem ser usados ​​para registro, controle de acesso e muito mais.

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. Use o truque For-Else

A construção for-else em Python permite que você execute um bloco else após um loop for ser concluído normalmente (ou seja, sem encontrar uma instrução break). Isso pode ser particularmente útil em operações de pesquisa.

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

Conclusão

Ao incorporar essas dicas avançadas de Python em seu fluxo de trabalho de desenvolvimento, você pode escrever código mais eficiente, legível e de fácil manutenção.

Esteja você otimizando o uso de memória com __slots__, simplificando operações de string com join() ou aproveitando o poder do módulo itertools, essas técnicas podem aprimorar significativamente suas habilidades de programação em Python.

Continue explorando e praticando esses conceitos para se manter à frente em sua jornada em Python.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/hisham_elamir/10-advanced-python-hacks-4-you-j2o?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3