Python gõ tĩnh Dict

Python là một ngôn ngữ được gõ động. Điều đó có nghĩa là không cần khai báo kiểu của biến khi gán giá trị cho nó. Chẳng hạn, bạn không cần khai báo kiểu dữ liệu của đối tượng

char major[] = "Tom";
2 là
char major[] = "Tom";
3 khi bạn khởi tạo đối tượng với giá trị chuỗi là
char major[] = "Tom";
4

major = 'Tom'

Trong một ngôn ngữ kiểu tĩnh như C, bạn phải khai báo kiểu dữ liệu của một đối tượng. Một chuỗi được khai báo là một mảng ký tự

char major[] = "Tom";

Mã hóa bằng ngôn ngữ được nhập động như Python chắc chắn linh hoạt hơn, nhưng người ta có thể muốn chú thích các kiểu dữ liệu của đối tượng và thực thi các ràng buộc kiểu. Nếu một hàm chỉ mong đợi các đối số nguyên, việc ném các chuỗi vào hàm có thể làm hỏng chương trình

Mặc dù đây là một trong những cạm bẫy chính của kiểu gõ động, Python 3 giới thiệu một số công cụ chú thích cho các lập trình viên để chỉ định và hạn chế các kiểu dữ liệu của các đối tượng.

Chú thích chức năng

Hãy lấy một hàm rất đơn giản

char major[] = "Tom";
5 làm ví dụ

def foo[n, s='Tom']:
return s*n

Hàm lấy

char major[] = "Tom";
6 và
char major[] = "Tom";
7 làm đối số và trả về
char major[] = "Tom";
8. Mặc dù nó có vẻ giống như một hàm nhân đơn giản và vô nghĩa, nhưng hãy lưu ý rằng giá trị mặc định của
char major[] = "Tom";
7 là
char major[] = "Tom";
4 là một chuỗi, không phải số. Chúng ta có thể suy luận rằng hàm này dự định trả về một chuỗi lặp lại chuỗi
char major[] = "Tom";
7 nhiều lần — chính xác là
char major[] = "Tom";
6 lần

char major[] = "Tom";
4

Chức năng này khá khó hiểu. Bạn có thể muốn viết các nhận xét và chuỗi tài liệu dài để giải thích hàm và chỉ định kiểu dữ liệu của đối số và giá trị trả về

char major[] = "Tom";
5

Ảnh của NASA trên Bapt

Python cung cấp một cách nhỏ gọn hơn để bạn thực hiện chú thích tùy chọn bằng các ký hiệu

def foo[n, s='Tom']:
return s*n
3 và
def foo[n, s='Tom']:
return s*n
4

char major[] = "Tom";
8

Các chú thích của hàm

char major[] = "Tom";
5 có sẵn từ thuộc tính
def foo[n, s='Tom']:
return s*n
6 của hàm. Đó là một từ điển ánh xạ các tên tham số thành các biểu thức được chú thích của chúng. Điều này cho phép kiểm tra loại thủ công bằng cách chạy mã thay vì tự mình xem mã nguồn. Khá tiện dụng

char major[] = "Tom";
1

Chú thích biến

Ngoài các đối số hàm và giá trị trả về, bạn cũng có thể chú thích các biến với một kiểu dữ liệu nhất định. Bạn cũng có thể chú thích các biến mà không cần khởi tạo chúng với bất kỳ giá trị nào

char major[] = "Tom";
2

Tốt hơn là chú thích các biến bằng cú pháp tích hợp này thay vì chú thích, vì chú thích thường bị mờ đi trong nhiều trình soạn thảo

Đối với các biến chú thích với các loại nâng cao hơn như

def foo[n, s='Tom']:
return s*n
7,
def foo[n, s='Tom']:
return s*n
8, v.v. , bạn sẽ cần nhập chúng từ mô-đun
def foo[n, s='Tom']:
return s*n
9. Tên của các loại được viết hoa, chẳng hạn như
char major[] = "Tom";
40,
char major[] = "Tom";
41,
char major[] = "Tom";
42, v.v.

char major[] = "Tom";
9

Các phần tử bên trong danh sách, bộ dữ liệu hoặc từ điển cũng có thể được chú thích. Các kiểu viết hoa đó lấy tham số trong ngoặc vuông

char major[] = "Tom";
43 như hình trên

char major[] = "Tom";
40 nhận một tham số, là loại được chú thích cho tất cả các phần tử bên trong danh sách. Các phần tử trong bộ có kích thước cố định có thể được chú thích từng cái một, trong khi các phần tử trong bộ có kích thước thay đổi có thể được chú thích bằng dấu chấm lửng
char major[] = "Tom";
45. Chúng tôi cũng có thể chỉ định các loại khóa và mục trong từ điển

Ảnh của Fabien Bazanegue trên Bazanegue

Chú thích nâng cao

Chúng tôi đã đề cập rằng

char major[] = "Tom";
40 chỉ nhận một tham số. Còn việc chú thích một danh sách chứa hỗn hợp các phần tử
char major[] = "Tom";
47 và
char major[] = "Tom";
48 thì sao?

major = 'Tom'
7

Nó cũng hỗ trợ mọi lớp do người dùng định nghĩa dưới dạng các loại trong chú thích

char major[] = "Tom";
0

Một callable cũng có thể được chú thích bằng cách sử dụng các kỹ thuật nêu trên. Có thể gọi được là một cái gì đó có thể được gọi, giống như một chức năng

char major[] = "Tom";
1

Hãy cẩn thận

Đầu tiên, chú thích loại không thay thế hoàn toàn chuỗi tài liệu và nhận xét. Một mô tả ngắn gọn và giải thích về các chức năng của bạn vẫn cần thiết cho mục đích dễ đọc và tái tạo. Kích hoạt chú thích loại có thể tránh nhận xét phức tạp chứa đầy thông tin như loại dữ liệu

Thứ hai, có một điều mà tôi nên nói với bạn ngay từ đầu. Trình thông dịch Python thực sự không tự động tiến hành bất kỳ loại kiểm tra nào. Điều đó có nghĩa là những chú thích đó không có tác dụng trong thời gian chạy, ngay cả khi bạn đang cố chuyển một loại đối tượng 'sai' cho một hàm

Vì vậy, bạn đã lãng phí thời gian của riêng mình để cố gắng tìm hiểu các chú thích loại?

Có sẵn nhiều mô-đun Python thực thi các ràng buộc đó trước thời gian chạy. mypy cho đến nay là trình kiểm tra loại được sử dụng phổ biến nhất mà không có chi phí thời gian chạy

Ảnh của REVOLT trên Bapt

Mang đi

Chú thích loại trong Python rất hữu ích để gỡ lỗi và kiểm tra loại tùy chọn bắt chước kiểu gõ tĩnh. Nó ngày càng trở nên phổ biến trong phát triển dự án, nhưng vẫn còn rất hiếm đối với các lập trình viên Python bình thường hơn

Mặc dù việc không có chú thích không nhất thiết làm giảm hiệu suất mã, nhưng nó vẫn được coi là một cách thực hành tốt cho các mục đích về độ bền, khả năng đọc và khả năng tái tạo

Chúng tôi hầu như chưa tìm hiểu sơ qua về gõ tĩnh và gõ chú thích trong Python. Trăn 3. 9 sắp ra mắt với một số nâng cấp về chú thích thay đổi, vì vậy hãy theo dõi bằng cách đăng ký nhận bản tin của tôi để nhận thông tin cập nhật về các bài viết mới của tôi

Thậm chí chưa sẵn sàng cho Python 3. số 8?

6 tính năng mới trong Python 3. 8 cho người mới sử dụng Python

Chuẩn bị tinh thần vì Python 2 không còn được hỗ trợ

hướng tới khoa học dữ liệu. com

Cảm ơn vì đã đọc. Bạn có thấy những tính năng này thú vị và hữu ích không? . Bạn cũng có thể thấy các bài viết sau hữu ích

Bạn có thể sử dụng kiểu gõ tĩnh trong Python không?

Python sẽ luôn là ngôn ngữ được gõ động. Tuy nhiên, PEP 484 đã giới thiệu các gợi ý về loại, cho phép thực hiện kiểm tra loại tĩnh của mã Python . Không giống như cách các loại hoạt động trong hầu hết các ngôn ngữ được nhập tĩnh khác, bản thân các gợi ý nhập không khiến Python thực thi các loại.

Gõ dict trong Python là gì?

Loại dict là một lớp chung, được biểu thị bằng các đối số loại trong [. ] . Ví dụ: dict[int, str] là từ điển từ số nguyên đến chuỗi và dict[Any, Any] là từ điển các khóa và giá trị được nhập động [tùy ý]. danh sách là một lớp chung khác.

Làm cách nào để nhập từ điển bằng Python?

Từ điển trong Python được tạo thành từ các cặp khóa-giá trị. Trong hai phần tiếp theo, bạn sẽ thấy hai cách tạo từ điển. Cách thứ nhất là sử dụng bộ dấu ngoặc nhọn {} và cách thứ hai là sử dụng hàm dict[] tích hợp.

một dict gõ là gì?

TypedDict là một loại kiểu mới được công cụ đánh máy Python chẳng hạn như mypy nhận dạng. Nó mô tả một từ điển/bản đồ có cấu trúc với một tập hợp các khóa chuỗi được đặt tên dự kiến ​​được ánh xạ tới các giá trị của các loại dự kiến ​​cụ thể . Các cấu trúc như vậy phổ biến khi trao đổi dữ liệu JSON, điều này thường xảy ra đối với các ứng dụng web Python.

Chủ Đề