Làm thế nào để bạn nhận được gợi ý trong python?

Gợi ý loại là quá trình chú thích mã của bạn để các nhà phát triển khác đọc mã của bạn sẽ hiểu loại đối tượng được khai báo. Gợi ý loại đã chính thức được thêm vào với việc phát hành Python 3. 5. Hiện tại, Python không thực thi gợi ý kiểu khi viết chương trình, nhưng đây vẫn là một cách thực hành tốt để làm cho mã của bạn dễ đọc hơn

Trong hướng dẫn này, chúng ta sẽ xem qua một ví dụ về gợi ý kiểu với hướng dẫn về cách phát hiện lỗi gợi ý kiểu. Sau đó, chúng tôi sẽ trình bày cách sử dụng gợi ý kiểu khi khởi tạo biến, cách sử dụng gợi ý kiểu với các giá trị do người dùng tạo và sau đó là cách sử dụng nhiều kiểu hoặc tùy chọn

Hàm ví dụ gợi ý kiểu #

Đầu tiên, hãy bắt đầu với chức năng này. Hàm toán học này được thiết kế để lấy hai số nguyên và trả về tổng

Trong ví dụ này, cả hai giá trị được truyền vào hàm

Success: no issues found in 1 source file

1 của chúng ta — đối tượng tính tổng và giá trị trả về — đều được chỉ định là số nguyên, như được biểu thị bằng

Success: no issues found in 1 source file

2 trong từng trường hợp. Các giá trị mặc định xuất hiện sau gợi ý kiểu cho các tham số chức năng

Vì trình thông dịch Python không thực thi gợi ý kiểu, nên các kiểu không mong muốn có thể được chuyển đến các hàm

Hãy xem xét điều gì sẽ xảy ra khi hai chuỗi được chuyển vào hàm

Success: no issues found in 1 source file

1

Sử dụng chức năng như thế này sẽ không gây ra lỗi. Thay vào đó, vì toán tử cộng có giá trị đối với kiểu chuỗi, nên nó sẽ nối hai chuỗi được truyền cho nó. Sử dụng hàm

Success: no issues found in 1 source file

1 như thế này sẽ trả về chuỗi

Success: no issues found in 1 source file

5

Nếu bạn muốn nhập kiểm tra mã của mình, bạn có thể sử dụng một công cụ bên ngoài để làm như vậy, chẳng hạn như Mypy. Bạn có thể sử dụng pip để cài đặt Mypy trong môi trường lập trình Python 3 của mình (hoặc sử dụng luân phiên lệnh

Success: no issues found in 1 source file

6)

Đặt mã đã viết trước đó vào một tệp có tên là

Success: no issues found in 1 source file

7. Bạn có thể chạy Mypy trên tệp bằng cách gõ lệnh sau

Chạy Mypy trên mã sẽ trả về các lỗi sau

sum.py:4: error: Argument 1 to "sum_two_numbers" has incompatible type "str"; expected "int" sum.py:4: error: Argument 2 to "sum_two_numbers" has incompatible type "str"; expected "int" Found 2 errors in 1 file (checked 1 source file)

Mã được viết với các vấn đề về gợi ý kiểu sẽ không trả về bất kỳ lỗi nào. Nếu chúng ta đặt phiên bản đầu tiên của hàm

Success: no issues found in 1 source file

1 sử dụng các kiểu số nguyên, thay vào đó, chúng ta sẽ nhận được đầu ra sau từ Mypy

Success: no issues found in 1 source file

Chạy Mypy trên các tệp Python sẽ giúp bạn phát hiện lỗi kiểm tra kiểu

Khởi tạo biến với kiểu hinting#

Các kiểu nguyên thủy của Python được bao gồm trong gợi ý kiểu chung

Mỗi biến này được khởi tạo với gợi ý kiểu như một phần của khai báo ở trên

Các loại bộ sưu tập#

Tùy thuộc vào phiên bản Python bạn đang sử dụng, bạn có thể tận dụng tính năng nhập tích hợp trên các cấu trúc dữ liệu hoặc bạn có thể cần nhập một mô-đun. Trong phần này, chúng ta sẽ tìm hiểu cách gợi ý các loại tập hợp kiểu trong hai phiên bản Python mới nhất

Trăn 3. 9#

Trong Python 3. 9, các loại bộ sưu tập tích hợp được bao gồm dưới dạng các loại chung và gợi ý loại tương ứng của chúng có thể được sử dụng tương tự như các loại Python nguyên thủy. Đây là cách bạn gõ gợi ý một đối tượng danh sách trong Python 3. 9

Danh sách này được khởi tạo với kiểu số nguyên bằng cách sử dụng cú pháp

Success: no issues found in 1 source file

0

Dưới đây là một ví dụ về một bộ mà chúng tôi đã nhập gợi ý là bao gồm một số nguyên, số float và chuỗi

Đối với một đối tượng bộ dữ liệu có kích thước không xác định, dấu chấm lửng được sử dụng để mô tả loại đối tượng được lưu trữ bên trong nó. Đây là một bộ dữ liệu với số lượng số nguyên không xác định được lưu trữ

Có thể gộp nhiều loại lại với nhau. Đây là một bộ có bộ hai số nguyên

Bởi vì chúng tôi đang làm việc trong Python 3. 9 trong các ví dụ này, chúng ta có thể thiết lập các cấu trúc dữ liệu này như đã làm với các kiểu dữ liệu khác ở trên, sử dụng chức năng tích hợp sẵn

Trăn 3. số 8#

Trong Python 3. 8, gợi ý loại bộ sưu tập tích hợp không được tích hợp trực tiếp vào Python và phải được nhập để sử dụng. Các loại này có thể được nhập bằng cách sử dụng mô-đun gõ. Sử dụng mô-đun đó, bên dưới là cách bạn nhập gợi ý một đối tượng danh sách trong Python 3. 8. Lưu ý việc sử dụng trường hợp tiêu đề trong

Success: no issues found in 1 source file

1

Một số kiểu khác trong Python 3. 8 cần tận dụng thư viện đánh máy bao gồm set, dictionary (_______12) và tuple. Vì cả hai loại từ điển và bộ có thể có nhiều loại liên quan, bạn phải chỉ định từng loại. Dưới đây là một ví dụ về bộ dữ liệu có số nguyên, số float và chuỗi

Đối với một đối tượng bộ dữ liệu có kích thước không xác định, dấu chấm lửng được sử dụng để mô tả loại đối tượng được lưu trữ bên trong nó. Đây là một bộ dữ liệu với số lượng số nguyên không xác định được lưu trữ

Bạn cũng có thể xếp nhiều loại lại với nhau, như trong bộ này sử dụng hai số nguyên

Khi làm việc với Python 3. 8, đảm bảo nhập mô-đun nhập liệu trước khi nhập gợi ý về bộ sưu tập dữ liệu. Trăn 3. 9 tương thích ngược và sẽ chạy mã ở trên

Loại do người dùng tạo#

Nó cũng hợp lệ để gõ gợi ý các lớp do người dùng định nghĩa. Về gợi ý kiểu, các lớp do người dùng định nghĩa hoạt động giống như các kiểu Python nguyên thủy. Ví dụ, đây là định nghĩa và triển khai lớp tọa độ

Trong ví dụ trên, các lớp do người dùng định nghĩa sử dụng gợi ý kiểu. Để tìm hiểu thêm về chú thích

Success: no issues found in 1 source file

3 với

Success: no issues found in 1 source file

4, hãy xem lại PEP 484 - Gợi ý loại

Nhiều loại và tùy chọn#

Như có thể xảy ra với một ứng dụng lấy đầu vào của người dùng, đôi khi bạn có thể thích một đối tượng là một trong nhiều loại. Điều này có thể sử dụng một công đoàn

Dưới đây là một ví dụ về cách bạn sẽ làm cho hàm

Success: no issues found in 1 source file

1 hỗ trợ cả số nguyên và số thực

Trong ví dụ trên,

Success: no issues found in 1 source file

6 và

Success: no issues found in 1 source file

7 có thể là kiểu số nguyên hoặc kiểu float

Nếu không rõ đối tượng sẽ thuộc loại nào, bạn có thể sử dụng từ khóa

Success: no issues found in 1 source file

8 để mô tả nó

Trong ví dụ trên,

Success: no issues found in 1 source file

9 có thể là bất kỳ loại nào

Một số đối tượng có thể có giá trị

Success: no issues found in 1 source file

10. Để cho phép điều này, hãy nhập gợi ý bằng từ khóa

Success: no issues found in 1 source file

11 để chỉ định rằng một biến có thể có giá trị được xác định hoặc Không có

Mã này sẽ tạo một đối tượng chuỗi có giá trị là

Success: no issues found in 1 source file

10

Tài nguyên bổ sung#

Đọc thêm về gợi ý loại Python trong PEP 484 từ tài liệu Python chính thức

Tìm kiếm mã nguồn mở cho gợi ý kiểu trong Python với Sourcegraph để tìm hiểu cách những người khác đang sử dụng điều này trong mã của họ. Dưới đây là một vài truy vấn để giúp bạn bắt đầu

Python có gợi ý kiểu không?

Với Python 3. 5, gợi ý nhập đã chính thức trở thành một phần của ngôn ngữ (PEP 484). Sử dụng công cụ kiểm tra mã hoặc kẻ nói dối, nhà phát triển có thể kiểm tra tính nhất quán của các biến và loại của chúng trên cơ sở mã và thực hiện các phân tích mã tĩnh mà trước đây khó hoặc không thể thực hiện được.

Khi nào Python nhận được gợi ý về loại?

Gợi ý loại đã được giới thiệu như một tính năng mới trong Python 3. 5 .

Phiên bản Python nào hỗ trợ gợi ý loại?

Gợi ý loại là một giải pháp chính thức để chỉ định tĩnh loại giá trị trong mã Python của bạn. Nó được chỉ định trong PEP 484 và được giới thiệu trong Python 3. 5 . Tên. cú pháp str cho biết đối số tên phải thuộc loại str.