enum, NamedTuple và TypedDict: chọn kiểu dữ liệu cho đúng việc
Trạng thái nên là enum, bản ghi bất biến nên là NamedTuple, còn dữ liệu vốn là dict thì giữ nguyên với TypedDict. Bài viết chỉ ra khi nào dùng cái nào và khác dataclass ở đâu.
Trạng thái nên là enum, bản ghi bất biến nên là NamedTuple, còn dữ liệu vốn là dict thì giữ nguyên với TypedDict. Bài viết chỉ ra khi nào dùng cái nào và khác dataclass ở đâu.
Gọi lệnh hệ thống từ Python rất tiện, nhưng cũng là nơi nhiều lỗ hổng chèn lệnh ra đời. Cách làm đúng gói gọn trong một câu: truyền tham số dạng danh sách và tránh xa shell=True.
Module csv chuẩn xử lý được gần hết công việc hằng ngày, miễn là bạn nhớ đúng encoding. Bài viết đi qua DictReader, DictWriter, bẫy số 0 ở đầu, bẫy ngày tháng và khi nào cần openpyxl.
Bốn kiểu dữ liệu trong module collections giúp bạn bỏ hẳn những dòng kiểm tra key lặt vặt: đếm tần suất, gom nhóm, hàng đợi hai đầu và bản ghi nhỏ có tên trường rõ ràng.
Ghép đường dẫn bằng chuỗi là nguồn lỗi bất tận: thiếu dấu gạch chéo, thừa dấu gạch chéo, cắt đuôi file sai. pathlib coi đường dẫn là đối tượng, và mọi thao tác quen thuộc chỉ còn một dòng.
print() đủ dùng khi đang thử nghiệm, nhưng khi chương trình chạy thật trên server bạn cần biết chuyện gì đã xảy ra lúc 3 giờ sáng. Đó là việc của module logging…
Mỗi lần bạn viết for x in danh_sach, Python đang dùng iterator ở bên dưới. Nắm được cơ chế này mở ra cả một thư viện công cụ rất mạnh: itertools.
Iterable và it…
Viết một class chỉ để chứa dữ liệu thường tốn rất nhiều dòng lặp lại. Từ Python 3.7, dataclass sinh sẵn những phần đó cho bạn.
Trước và sau
# Cách truyền thống…
Bạn đã dùng with open(…) để đọc file. Cơ chế đứng sau nó gọi là context manager — và bạn hoàn toàn có thể tự viết một cái.
Vì sao cần with?
# Cách dễ quên đón…