Python là một ngôn ngữ được gõ động. Người ta không cần phải chỉ ra rõ ràng kiểu dữ liệu và kiểu trả về của các biến và hàm của bạn, tương ứng. Dynamic typing làm cho Python rất thân thiện với người dùng. Tuy nhiên, gõ động không có tài liệu xác minh trình biên dịch và có thể dẫn đến lỗi thời gian chạy khó sửa. Gõ tĩnh cung cấp một giải pháp cho những vấn đề này
Trong bài viết này sẽ giới thiệu cách thực hiện gõ tĩnh trong Python và xử lý cả chú thích biến và hàm. Bạn sẽ cần có hiểu biết cơ bản về Python để theo dõi. Bạn cũng sẽ cần cài đặt mypy để kiểm tra loại
Mục lục
- Giới thiệu về loại chú thích
- Chú thích biến
- Chú thích chức năng
- Các chú thích được chọn trong mô-đun Python
7Output 1: John Doe
- Có thể gọi
- Danh sách
- Dict & Bất kỳ
- liên hiệp
- Sử dụng trình kiểm tra kiểu tĩnh mypy
1. Giới thiệu về loại chú thích
Chú thích loại là một tính năng mới được PEP 484 thêm vào Python phiên bản 3. 5 trở lên. Chúng đưa ra các gợi ý cho trình đọc mã về kiểu trả về của biến hoặc hàm. Chú thích loại cũng có thể được thực hiện trên các biến và hàm
2. Chú thích biến
Chúng tôi đạt được chú thích biến bằng cách thêm dấu chấm phẩy và loại sau khi khai báo hoặc khởi tạo một biến. tôi. e
Output 1: John Doe
8. Giống như trong ví dụ bên dưới, thay vì nói Output 1: John Doe
9, chúng tôi chỉ định loại trả về bằng cách viết def square[x: int] -> int:
return x * x
print[square[6]]
0. Người ta có thể tìm thấy đầu ra của mã này ở đâyname: str = "John Doe"
print["Output 1: "+ str[name]]
Đầu ra có thể được tìm thấy ở đây là Đầu ra 1
Output 1: John Doe
Bạn sẽ nhận thấy rằng đầu ra giống như
Output 1: John Doe
9. Tuy nhiên, chúng ta sẽ tìm hiểu lý do tại sao cái sau được khuyến nghị3. Chú thích chức năng
Điều này đạt được bằng cách thêm một mũi tên chuyển tiếp biểu thị kiểu trả về dự kiến của tham số hàm sau dấu ngoặc đóng của tham số hàm. tôi. e
def square[x: int] -> int:
return x * x
print[square[6]]
2def square[x: int] -> int:
return x * x
print[square[6]]
Đầu ra có thể được tìm thấy ở đây dưới dạng Đầu ra. 2
36
4. Các chú thích được chọn trong mô-đun 'Đánh máy' của Python
Ở đây chúng ta sẽ xem xét một số chú thích được sử dụng phổ biến nhất trong mô-đun Python Typing
4. 1. Có thể gọi
Chúng tôi sử dụng Callable khi một chức năng là đối số của một chức năng khác. Đoạn mã dưới đây trình bày cách sử dụng
def square[x: int] -> int:
return x * x
print[square[6]]
3, chúng tôi đang viết một hàm để gọi hàm def square[x: int] -> int:
return x * x
print[square[6]]
4 cho mọi thành viên của danh sáchOutput 1: John Doe
2đầu ra
Output 1: John Doe
3Bạn có thể xác nhận đầu ra ở đây là đầu ra 3
4. 2. Danh sách
def square[x: int] -> int:
return x * x
print[square[6]]
5 thông báo cho trình kiểm tra loại rằng các số là một danh sách nếu các số nguyên. def square[x: int] -> int:
return x * x
print[square[6]]
6 chỉ ra rằng hàm trả về một danh sách các số nguyênĐầu ra mã là một danh sách các số chẵn từ 100 đến 120. Đây là đầu ra là
def square[x: int] -> int:
return x * x
print[square[6]]
7Output 1: John Doe
7Output 1: John Doe
84. 3. Dict & bất kỳ
Output 1: John Doe
9Bạn có thể tìm thấy đầu ra ở đây là
def square[x: int] -> int:
return x * x
print[square[6]]
8Output 1: John Doe
1Trình kiểm tra loại coi
def square[x: int] -> int:
return x * x
print[square[6]]
9 là tương thích với mọi loại dữ liệu. Chúng tôi có thể thực hiện bất kỳ thao tác hoặc cuộc gọi phương thức nào trên def square[x: int] -> int:
return x * x
print[square[6]]
94. 4. liên hiệp
Union được sử dụng khi một hàm có nhiều hơn một kiểu trả về. Chẳng hạn, chúng ta có thể sử dụng
36
1 để sửa đổi hàm def square[x: int] -> int:
return x * x
print[square[6]]
4 của mình để tìm bình phương của cả 36
3 và 36
4Output 1: John Doe
0Đầu ra ở đây là ________ 95
Output 1: John Doe
15. Sử dụng trình kiểm tra kiểu tĩnh mypy
Đây là nơi chúng ta sẽ hiểu sự liên quan của việc gõ tĩnh
Đầu tiên, chúng tôi cài đặt
36
6Output 1: John Doe
2Chúng tôi sẽ kiểm tra loại bằng chức năng
def square[x: int] -> int:
return x * x
print[square[6]]
4 của chúng tôi. Khi chúng ta thay đổi giá trị trả về của hàm thành chuỗi 36
8Output 1: John Doe
3Chương trình xuất ra một chuỗi
36
8 mặc dù chúng tôi mong đợi số nguyên hoặc số float. Bạn sẽ nhận thấy rằng chương trình này đã chạy thành công mà không có lỗiHãy sử dụng
36
6 để gõ mã kiểm tra lỗi. Để kiểm tra một đoạn mã bằng mypy, hãy chạy Output 1: John Doe
21 trong thư mục chứa mã của bạnChạy mã và kiểm tra đầu ra trong thiết bị đầu cuối thay thế sau tại đây
đầu ra
Output 1: John Doe
4Khi chúng tôi sửa lỗi bằng cách xác định kiểu trả về hợp lệ của các biến và hàm,
36
6 đưa ra kết quả thành công cho thấy chương trình đã vượt qua kiểm tra kiểu thành công như được hiển thị ở đâyOutput 1: John Doe
5đầu ra
Output 1: John Doe
6Như bạn có thể thấy, với kiểu gõ tĩnh, chúng ta có thể sử dụng trình kiểm tra kiểu để xác định lỗi trong mã của mình
5. Sự kết luận
Gõ gợi ý là một tính năng hữu ích trong Python. Nó giúp bạn xác định lỗi và duy trì một hồ sơ rõ ràng. Trong hướng dẫn này, bạn đã học những kiến thức cơ bản về cách sử dụng gợi ý loại và cách thêm chúng vào mã bằng cách sử dụng chú thích
Bạn cũng đã có phần giới thiệu về cách sử dụng mypy làm trình kiểm tra kiểu tĩnh. Bạn có thể tiếp tục và tìm hiểu sâu hơn về PEP 484 và tài liệu Mypy để biết thêm thông tin