Python ialah bahasa yang serba boleh dan berkuasa, dan menguasai ciri lanjutannya boleh meningkatkan kecekapan pengekodan dan kebolehbacaan anda dengan ketara. Berikut ialah beberapa petua Python lanjutan untuk membantu anda menulis kod yang lebih baik, bersih dan lebih cekap.
Saya menulis 2 buku kecil untuk dibaca pada hujung minggu yang meliputi ular sawa, berikut pautannya: (1) https://leanpub.com/learnpython_inweekend_pt1 & (2) https://leanpub.com/learnpython_inweekend_pt2
Pemahaman senarai menawarkan cara ringkas untuk membuat senarai. Mereka selalunya boleh menggantikan gelung tradisional dan pernyataan bersyarat, menghasilkan kod yang lebih bersih dan lebih mudah dibaca.
# 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]
Ekspresi penjana membolehkan anda mencipta iterator dengan cara yang ringkas tanpa menyimpan keseluruhan urutan dalam ingatan, menjadikannya lebih cekap ingatan.
# 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)
Apabila mengulangi sesuatu yang boleh diulang dan perlu menjejaki indeks setiap elemen, fungsi enumerate() adalah tidak ternilai.
fruits = ['apple', 'banana', 'cherry'] for index, fruit in enumerate(fruits): print(f"Index: {index}, Fruit: {fruit}")
Menggunakan kaedah join() untuk menggabungkan rentetan adalah lebih cekap daripada menggunakan operator +, terutamanya untuk rentetan besar.
fruits = ['apple', 'banana', 'cherry'] fruit_string = ', '.join(fruits) print(fruit_string) # Output: apple, banana, cherry
Secara lalai, Python menyimpan atribut contoh dalam kamus, yang boleh menggunakan memori yang ketara. Menggunakan __slots__ boleh mengurangkan penggunaan memori dengan memperuntukkan memori untuk set tetap pembolehubah contoh.
class Point: __slots__ = ['x', 'y'] def __init__(self, x, y): self.x = x self.y = y
Pengurus konteks contextlib.suppress membenarkan anda mengabaikan pengecualian tertentu, memudahkan kod anda dengan mengelakkan sekatan cuba-kecuali yang tidak perlu.
from contextlib import suppress with suppress(FileNotFoundError): with open('file.txt', 'r') as file: contents = file.read()
Modul itertools menawarkan koleksi fungsi yang cekap untuk bekerja dengan iterator. Fungsi seperti produk, pilih atur dan gabungan boleh memudahkan operasi yang kompleks.
import itertools # Calculate all products of an input print(list(itertools.product('abc', repeat=2))) # Calculate all permutations print(list(itertools.permutations('abc')))
Penghias functools.lru_cache boleh cache hasil panggilan fungsi yang mahal, meningkatkan prestasi.
from functools import lru_cache @lru_cache(maxsize=32) def fibonacci(n): if n < 2: return n return fibonacci(n-1) + fibonacci(n-2)
Penghias ialah alat yang berkuasa untuk mengubah suai gelagat fungsi atau kelas. Ia boleh digunakan untuk pengelogan, kawalan akses dan banyak lagi.
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()
Pembinaan for-else dalam Python membolehkan anda melaksanakan blok lain selepas gelung for selesai seperti biasa (iaitu, tanpa menemui pernyataan putus). Ini amat berguna dalam operasi carian.
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")
Dengan memasukkan petua Python lanjutan ini ke dalam aliran kerja pembangunan anda, anda boleh menulis kod yang lebih cekap, boleh dibaca dan boleh diselenggara.
Sama ada anda mengoptimumkan penggunaan memori dengan __slots__, memudahkan operasi rentetan dengan join(), atau memanfaatkan kuasa modul itertools, teknik ini boleh meningkatkan kemahiran pengaturcaraan Python anda dengan ketara.
Teruskan meneroka dan mengamalkan konsep ini untuk kekal di hadapan dalam perjalanan Python anda.
Atas ialah kandungan terperinci Hacks Python Lanjutan atau. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!