Các module có sẵn trong python
Tác giả: Adam Goldschmidt Show Python là một ngôn ngữ lập trình tuyệt vời, và nó chứa nhiều module tích hợp sẵn nhằm giúp chúng ta viết code tốt hơn, code đẹp hơn. Mục tiêuThông qua bài viết này, chúng ta sẽ sử dụng một vài module và phương pháp ít ai biết mà có thể cải thiện được cách code của chúng ta cả về phần nhìn và tính hiệu quả. NamedTupleTôi tin rằng một vài người hẳn đã biết tới câu lệnh phổ biến hơn là
In [2]: import typing In [3]: class BetterLookingArticle(typing.NamedTuple): ...: title: str ...: id: int ...: description: str = "No description given." ...: In [4]: BetterLookingArticle(title="Python is cool.", id=1) BetterLookingArticle(title='Python is cool.', id=1, description='No description given.') Còn thay vào đó nếu ta sử dụng In [6]: import collections In [7]: Article = collections.namedtuple("Article", ["title", "description", "id"]) In [8]: Article(title="Python is cool.", id=1, description="") Article(title='Python is cool.', description='', id=1) array.arrayCác mảng giá trị số hiệu quả. Mảng là những loại trình tự hoạt động rất giống như list, ngoại trừ các loại đối tượng được lưu trữ bị hạn chế. Khi sử dụng module https://gist.github.com/AdamGold/961758c66cdfe92642eabb61d9ce9866 Có thể thấy là nhanh hơn gấp 14 lần bình thường. Tất nhiên là cũng phụ thuộc vào module pickle , nhưng sử dụng mảng vẫn gọn hơn so với sử dụng list. Vậy nên nếu bạn đang dùng những giá trị số đơn giản, bạn nên cân nhắc việc sử dụng module array. Có thể bạn muốn xem: Việc làm Python không yêu cầu kinh nghiệm itertools.combinations
Tôi đã sử dụng phương thức combinations trong tuần này và tôi nghĩ là tôi sẽ chia sẻ về nó. Phương thức này lấy một số lặp và một số nguyên làm đối số, và tạo ra một trình bao gồm tất cả các tổ hợp có thể có của phép lặp với một dãy số nguyên dài nhất mà không bị trùng lặp: In [16]: import itertools In [17]: list(itertools.combinations([1, 2, 3, 4], 2)) [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] dict.fromkeysĐây là cách viết một dict cách nhanh chóng và đẹp mắt với giá trị mặc định: In [18]: dict.fromkeys(["key1", "key2", "key3"], "DEFAULT_VALUE") {'key1': 'DEFAULT_VALUE', 'key2': 'DEFAULT_VALUE', 'key3': 'DEFAULT_VALUE'} Cuối cùng nhưng không kém phần quan trọng – Module disModule Có thể bạn đã biết hoặc chưa biết, Python dịch mã nguồn thành một tập hợp các chỉ thị gọi là “bytecode”. Module dis giúp chúng ta xử lý những chỉ thị này, và đồng thời nó cũng là một công cụ debug tuyệt vời. Đây là một ví dụ trong cuốn Fluent Python: In [22]: t = (1, 2, [3, 4]) In [23]: t[2] += [30, 40] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Bị một lỗi nhưng hệ thống vẫn hoạt động. Tại sao lại như vậy? Nếu chúng ta nhìn vào bytecode (Tôi đã thêm chú thích gần những phần quan trọng): In [25]: dis.dis("t[a] += b") 1 0 LOAD_NAME 0 (t) 2 LOAD_NAME 1 (a) 4 DUP_TOP_TWO 6 BINARY_SUBSCR 8 LOAD_NAME 2 (b) 10 INPLACE_ADD --> (value in t[a]) += b --> succeeds because list is mutable 12 ROT_THREE 14 STORE_SUBSCR --> Assign t[a] = our list --> Fails, t[a] is immutable. 16 LOAD_CONST 0 (None) 18 RETURN_VALUE Trước khi kết thúc…Thanks for reading! For more Python related articles and other cool stuff, you can follow me on Medium or GitHub (I star some awesome repos!). Xin cảm ơn các bạn đã đọc bài viết này! Để đọc nhiều bài viết hơn về Python và những chủ đề hay khác, bạn có thể follow tôi trên Medium hoặc GitHub (…. Nếu bạn thích bài viết này, hãy nhấn giữ nút 👏 để những người khác có thể tìm thấy bài viết. Bạn càng giữ lâu, bạn sẽ càng chia sẻ cho nhiều người hơn! Và đừng ngần ngại chia sẻ thêm nhiều kiến thức bổ ích về Python ở phần bình luận bên dưới nhé! Bài viết gốc được đăng tải tại Medium |