Kể từ đó, các tính năng đã xuất hiện và biến mất. Bối cảnh của gợi ý kiểu đã trải qua một số cuộc đại tu lớn — đặc biệt là với hai bản phát hành Python mới nhất — 3. 9 và (sắp tới) 3. 10 Show Trong bài viết này, chúng ta sẽ xem xét các tính năng này — và cách chúng ta áp dụng gợi ý loại cho mã của chính mình Chú thích loại là gì? Chú thích kiểu — còn được gọi là chữ ký kiểu — được sử dụng để chỉ ra kiểu dữ liệu của biến và đầu vào/đầu ra của hàm và phương thức Trong nhiều ngôn ngữ, kiểu dữ liệu được nêu rõ ràng. Trong các ngôn ngữ này, nếu bạn không khai báo kiểu dữ liệu của mình — mã sẽ không chạy Hãy lấy ví dụ về tập lệnh hello world trong C #include<stdio.h>int main() Ở đây chúng tôi đã xác định hai loại chữ ký, characters = 'am a' 0. Mã này biên dịch và chạy hoàn hảo. Nhưng điều gì sẽ xảy ra nếu chúng tôi xóa chữ ký characters = 'am a' 0 của mình?Việc thiếu chữ ký kiểu char ở định nghĩa biến sẽ khiến chúng ta gặp một thế giới đau đớn khi biên dịchMã của chúng tôi sẽ không hoạt động. C yêu cầu chúng tôi khai báo bất kỳ và tất cả các kiểu dữ liệu biến Python dễ tha thứ hơn — chúng ta không cần xác định các loại tại bất kỳ thời điểm nào Tĩnh vs ĐộngCó tên cho những cách tiếp cận này trong ngôn ngữ lập trình. C yêu cầu chúng tôi xác định rõ ràng các loại - đó là ngôn ngữ được nhập tĩnh Mặt khác, Python, với cách tiếp cận gung-ho hơn đối với các phép gán biến, là một ngôn ngữ được gõ động Làm thế nào để chúng ta xác định hai cách tiếp cận này?
Có những ưu và nhược điểm đối với cả hai cách tiếp cận, nhưng một điểm mạnh của các ngôn ngữ được nhập tĩnh (áp dụng cho chúng tôi) là nó làm cho mã rất rõ ràng. Để đưa ra hai ví dụ về lý do tại sao điều này là hữu ích
characters = 'am a' Biến thứ hai phải là characters = 'am a' 2 chứ không phải characters = 'am a' 3. Trong ngôn ngữ được nhập tĩnh, lỗi đánh máy này sẽ gây ra lỗi - nhưng đối với ngôn ngữ được nhập động thì không.Mặt khác, mã được nhập tĩnh được nhiều người xem là quá dài dòng. Làm cho mã phức tạp hơn để đọc và viết Trong thực tế, không có mô hình nào tốt hơn hay xấu hơn mô hình kia. Họ có điểm mạnh và điểm yếu riêng Bây giờ là đủ cho các chú thích kiểu chung, còn chú thích kiểu Python thì sao? Chú thích loại của Python Loại chú thích trong Python không phải là tạo hoặc phá vỡ như trong ví dụ C của chúng tôi. Chúng là các đoạn cú pháp tùy chọn mà chúng ta có thể thêm vào để làm cho mã của chúng ta rõ ràng hơn Chú thích loại sai sẽ không làm gì khác hơn là làm nổi bật chú thích không chính xác trong trình chỉnh sửa mã của chúng tôi — không có lỗi nào phát sinh do chú thích Vì vậy, nếu chú thích loại không được thực thi, tại sao lại sử dụng chúng? Chà, như chúng ta đã đề cập - việc khai báo các kiểu làm cho mã của chúng ta rõ ràng hơn và nếu được thực hiện tốt, sẽ dễ đọc hơn - cho cả chúng ta và những người khác Những thứ cơ bảnTừ Python 3. 9 chúng tôi đã có thể định nghĩa các kiểu dữ liệu như vậy Khá mát mẻ phải không? Sau đó, chúng tôi đã xác định một hàm đơn giản và khai báo các kiểu dữ liệu dự kiến của hai đối số đầu vào characters = 'am a' 6 và characters = 'am a' 7 — và thậm chí cả kiểu dữ liệu mà hàm trả về với characters = 'am a' 8Bây giờ, nếu chúng ta nhập một chú thích không chính xác, điều gì sẽ xảy ra? Trên thực tế, không có gì quan trọng — hãy nhớ rằng Python không thực thi các chú thích kiểu của chúng ta Trình nói dối Python của chúng tôi làm nổi bật mã của chúng tôi, đưa ra cảnh báo rằng có điều gì đó không ổnDi chuột qua mã được đánh dấu cho chúng tôi biết rằng một str đã được chuyển vào nơi chúng tôi mong đợi một intThay vào đó, chúng được sử dụng bởi các IDE và linters của bên thứ ba. Vì vậy, một chú thích sai sẽ được đánh dấu bằng công cụ bên thứ ba của chúng tôi — hoạt động như một hệ thống cảnh báo sớm rằng logic của chúng tôi không hoàn toàn đúng Kết hợp các kiểu dữ liệuBên cạnh các kiểu dữ liệu cơ bản str_int = {'one': 5, 'two': 7} 0, str_int = {'one': 5, 'two': 7} 1, str_int = {'one': 5, 'two': 7} 2, v.v. — chúng ta cũng có thể kết hợp từng loại này để tạo các cấu trúc gõ phức tạp hơnVì vậy, đưa ra hai từ điển str_int = {'one': 5, 'two': 7} Chúng ta có thể định nghĩa hai đối tượng này là loại str_int = {'one': 5, 'two': 7} 2. Để viết một hàm mong đợi một trong hai từ điển này làm đầu vào, chúng ta có thể viếtdef sum_dict(var: dict): Nhưng, chúng ta muốn xác định điều gì rằng chúng ta mong đợi một từ điển chứa các khóa thuộc loại str_int = {'one': 5, 'two': 7} 0 và các giá trị thuộc loại int ? def sum_dict(var: dict[str, int]): Bây giờ, khi đưa cả str_int = {'one': 5, 'two': 7} 6 và str_int = {'one': 5, 'two': 7} 7 vào cùng một chức năng trong IDE của chúng tôi - chúng tôi sẽ thấy rằng str_int = {'one': 5, 'two': 7} 7 được tô sángTrình nói dối Python của chúng tôi nhấn mạnh loại đầu vào sai của chúng tôiDi chuột qua biến được đánh dấu int_int sẽ hiển thị thông báo cảnh báo nàyTừ điển đầu tiên của chúng tôi str_int = {'one': 5, 'two': 7} 6 sẽ trôi qua mà không có vấn đề gì. Tuy nhiên, str_int = {'one': 5, 'two': 7} 7 trả về cảnh báo loại không tương thíchđoàn thểTrong một số trường hợp, chúng tôi có thể muốn cho phép một tập hợp các loại khác nhau cho một nhiệm vụ Ví dụ, trong chức năng bổ sung trước đó của chúng tôi - chúng tôi có thực sự chỉ muốn cho phép số nguyên không? Để cho phép nhiều kiểu dữ liệu, chúng ta có thể sử dụng các toán tử hợp kiểu. Tiền Python 3. 10 cái này sẽ như thế nào from typing import Uniondef add(x: Union[int, float], y: Union[int, float]) -> Union[int, float]: Ở đây, chúng tôi cho phép kiểu dữ liệu str_int = {'one': 5, 'two': 7} 1. Với Python3. 10 (bản phát hành đầy đủ là tháng 10 năm 2021), chúng ta có thể thay thế def sum_dict(var: dict): 3 bằng toán tử công đoàn mới def sum_dict(var: dict): 4def add(x: int | float, y: int | float) -> int | float: Toán tử tùy chọnLoại cuối cùng chúng ta nên xem xét là toán tử def sum_dict(var: dict): 5Khi chúng ta xác định một hàm với các tham số tùy chọn, chúng ta có thể chỉ định điều này bằng cách sử dụng loại def sum_dict(var: dict): 5. Ví dụ: chúng ta có thể thêm một đối số chuỗi tùy chọn vào hàm def sum_dict(var: dict): 7 của mìnhfrom typing import Optionaldef add(x: int, y: int, op: Optional[str]) -> int: Ở đây, chú thích loại của chúng tôi sẽ mong đợi một giá trị def sum_dict(var: dict): 8 hoặc kiểu dữ liệu str_int = {'one': 5, 'two': 7} 0. Chúng ta cũng có thể viết logic chính xác này bằng cách sử dụng một def sum_dict(var: dict): 3def add(x: int, y: int, op: Union[None, str]) -> int: Cái nào tạo ra cùng một chú thích chính xác, cho phép giá trị def sum_dict(var: dict): 8 hoặc kiểu dữ liệu str_int = {'one': 5, 'two': 7} 0Hàm add sử dụng toán tử Tùy chọn, trong khi hàm add2 sử dụng toán tử Hợp với Không — cả hai đều tạo ra chú thích cùng loạiĐó là tất cả cho phần giới thiệu này để nhập chú thích trong Python — một bổ sung tuyệt vời cho hệ sinh thái Python khi được áp dụng tốt Tôi hy vọng bạn thích bài viết. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào qua Twitter hoặc trong phần bình luận bên dưới. Nếu bạn quan tâm đến nhiều nội dung như thế này, tôi cũng đăng trên YouTube Cảm ơn vì đã đọc Nếu bạn muốn tìm hiểu về các tính năng thú vị hơn của Python, hãy xem bài viết này về câu lệnh đối sánh trường hợp mới đi kèm với Python 3. 10 Chú thích trong Python là gì?Chú thích hàm là các biểu thức python tùy ý được liên kết với các phần khác nhau của hàm. Các biểu thức này được đánh giá tại thời điểm biên dịch và không tồn tại trong môi trường thời gian chạy của python. Python không gắn bất kỳ ý nghĩa nào với các chú thích này
Cách viết bình luận khác nhau trong Python là gì?Một nhận xét trong Python bắt đầu bằng ký tự băm, # và kéo dài đến cuối dòng vật lý. Tuy nhiên, một ký tự băm trong một giá trị chuỗi không được coi là một nhận xét. Nói chính xác, một nhận xét có thể được viết theo ba cách - hoàn toàn trên một dòng riêng, bên cạnh một câu lệnh và dưới dạng một khối nhận xét nhiều dòng
Chú thích chức năng là gì và chúng được sử dụng như thế nào trong Python?Chú thích hàm, cho cả tham số và giá trị trả về, là hoàn toàn tùy chọn. Chú thích hàm không gì khác hơn là một cách liên kết các biểu thức Python tùy ý với các phần khác nhau của hàm tại thời điểm biên dịch . Bản thân Python không gắn bất kỳ ý nghĩa hoặc tầm quan trọng cụ thể nào vào các chú thích.
Chú thích loại trong Python là gì?Chú thích loại — còn được gọi là chữ ký loại — được dùng để biểu thị kiểu dữ liệu của biến và đầu vào/đầu ra của hàm và phương thức . Trong nhiều ngôn ngữ, kiểu dữ liệu được nêu rõ ràng. Trong các ngôn ngữ này, nếu bạn không khai báo kiểu dữ liệu của mình — mã sẽ không chạy. |