Phương thức
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79 hoặc trả về kiểu của đối tượng đã chỉ định hoặc trả về một đối tượng kiểu mới của lớp động đã chỉ định, dựa trên tên lớp đã chỉ định, các lớp cơ sở và nội dung lớpcú pháp
type[object]
type[name, bases, dict]
Thông số
- sự vật. Yêu cầu. Đối tượng có kiểu được trả về
- Tên. Yêu cầu. Một tên lớp
- căn cứ. Yêu cầu. Một bộ dữ liệu liệt kê lớp cơ sở
- mệnh lệnh. Yêu cầu. Một từ điển là không gian tên chứa các định nghĩa cho thân lớp
Giá trị trả về
- If object is passed, then it returns the type of object in angular brackets as .
- Nếu name, base và dict được truyền, thì nó trả về một đối tượng kiểu mới
Phương thức sau trả về loại đối tượng khác nhau
Thí dụ. loại hình[]
Sao chéplang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
đầu ra
Trong ví dụ trên, một đối tượng được truyền dưới dạng một tham số duy nhất trong hàm
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79, vì vậy nó trả về tên lớp của đối tượng e. g. đối với chuỗi, nó trả về lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
1. Sử dụng hàm isinstance[] để kiểm tra loại đối tượng nếu bạn cũng muốn xem xét các lớp cơ sởPhương thức
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79 có thể được sử dụng để tạo một lớp mới một cách linh hoạt thay vì sử dụng câu lệnh lớp. Ví dụ: phần sau tạo lớp lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
3 một cách linh hoạt bằng cách chuyển các tham số name, base và dict cho hàm lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79Thí dụ. loại hình[]
Sao chépstd = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
đầu ra
John
12
Loại đối tượng mới được tạo bằng hàm
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79 sẽ là lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
6. Thuộc tính lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
7 của lớp lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
8 sẽ là lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
8, một tuple
0 chỉ định lớp cơ sở của lớp lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
8 và sẽ gán cho thuộc tính
2. Tham số thứ ba
3 trở thành phần thân của lớp chứa hai thuộc tính
4 và
5. Lệnh này sẽ được gán cho thuộc tính
6Thí dụ. loại hình[]
Sao chéplang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
8đầu ra
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
9Hàm dir sẽ trả về các thuộc tính sau của lớp động được tạo bằng hàm
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79 Thời gian chạy Python không thực thi chức năng và chú thích loại biến. Chúng có thể được sử dụng bởi các công cụ của bên thứ ba như trình kiểm tra loại, IDE, linters, v.v.
Mô-đun này cung cấp hỗ trợ thời gian chạy cho các gợi ý loại. Hỗ trợ cơ bản nhất bao gồm các loại ________ 2026, ________ 2027, ________ 2028,
029 và ________ 2030. Để biết thông số kỹ thuật đầy đủ, vui lòng xem PEP 484. Để có phần giới thiệu đơn giản về gợi ý nhập, hãy xem PEP 483Hàm bên dưới nhận và trả về một chuỗi và được chú thích như sau
5Trong hàm
031, đối số
032 dự kiến sẽ thuộc loại
033 và loại trả về là
033. Các kiểu con được chấp nhận làm đối sốCác tính năng mới thường xuyên được thêm vào mô-đun
025. Gói typing_extensions cung cấp các bản sao của các tính năng mới này cho các phiên bản Python cũ hơnĐể biết tóm tắt về các tính năng không dùng nữa và dòng thời gian không dùng nữa, vui lòng xem Dòng thời gian ngừng dùng các tính năng chính
Xem thêm
Tài liệu tại https. //đánh máy. đọcthedocs. io/ đóng vai trò là tài liệu tham khảo hữu ích cho các tính năng của hệ thống nhập, các công cụ liên quan đến đánh máy hữu ích và các phương pháp hay nhất về đánh máy
PEP liên quan¶
Kể từ lần đầu giới thiệu các gợi ý loại trong PEP 484 và PEP 483, một số PEP đã sửa đổi và nâng cao khung của Python cho các chú thích loại. Bao gồm các
- PEP 526. Cú pháp cho chú thích biến
Giới thiệu cú pháp để chú thích các biến bên ngoài định nghĩa hàm và
036
- PEP 544. giao thức. Phân loại cấu trúc [gõ vịt tĩnh]
Giới thiệu
037 và trình trang trí
038
- PEP 585. Nhập gợi ý chung trong bộ sưu tập tiêu chuẩn
Giới thiệu
039 và khả năng sử dụng các lớp thư viện tiêu chuẩn làm các loại chung
- PEP 586. Các loại chữ
Giới thiệu
040
- PEP 589. đã gõDict. Nhập gợi ý cho từ điển với một bộ phím cố định
Giới thiệu
041
- PEP 591. Thêm một vòng loại cuối cùng để gõ
Giới thiệu
042 và trình trang trí
043
- PEP 593. Chức năng linh hoạt và chú thích biến
Giới thiệu
044
- PEP 604. Cho phép viết các loại công đoàn là
045
Giới thiệu
046 và khả năng sử dụng toán tử nhị phân hoặc toán tử
047 để biểu thị một kết hợp các loại
- PEP 612. Tham số Thông số kỹ thuật Biến
Giới thiệu
048 và
049
- PEP 613. Bí danh loại rõ ràng
Giới thiệu
050
- PEP 646. Generic biến thể
Giới thiệu
051
- PEP 647. Bảo vệ loại do người dùng xác định
Giới thiệu
052
- PEP 655. Đánh dấu các mục TypedDict riêng lẻ là bắt buộc hoặc có khả năng bị thiếu
Giới thiệu
053 và
054
- PEP 673. tự loại
Giới thiệu
055
- PEP 675. Loại chuỗi ký tự tùy ý
Giới thiệu
056
- PEP 681. Biến đổi lớp dữ liệu
Giới thiệu trình trang trí
057
Nhập bí danh¶
Bí danh loại được xác định bằng cách gán loại cho bí danh. Trong ví dụ này,
058 và
059 sẽ được coi là từ đồng nghĩa có thể hoán đổi cho nhau
0Bí danh loại rất hữu ích để đơn giản hóa chữ ký loại phức tạp. Ví dụ
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
6Lưu ý rằng ________ 2060 dưới dạng gợi ý loại là trường hợp đặc biệt và được thay thế bằng ________ 2061
Kiểu mới¶
Sử dụng trình trợ giúp
062 để tạo các loại riêng biệtJohn
12
0Trình kiểm tra kiểu tĩnh sẽ xử lý kiểu mới như thể nó là một lớp con của kiểu ban đầu. Điều này rất hữu ích trong việc giúp bắt các lỗi logic
John
12
1Bạn vẫn có thể thực hiện tất cả các thao tác
063 trên một biến loại
064, nhưng kết quả sẽ luôn là loại
063. Điều này cho phép bạn vượt qua một
064 bất cứ nơi nào có thể có một
063, nhưng sẽ ngăn bạn vô tình tạo một
064 theo cách không hợp lệJohn
12
8Lưu ý rằng các kiểm tra này chỉ được thực thi bởi trình kiểm tra kiểu tĩnh. Khi chạy, câu lệnh
069 sẽ làm cho
070 có thể gọi được và ngay lập tức trả về bất kỳ tham số nào bạn truyền cho nó. Điều đó có nghĩa là biểu thức
071 không tạo ra một lớp mới hoặc giới thiệu nhiều chi phí ngoài cuộc gọi hàm thông thườngChính xác hơn, biểu thức
072 luôn đúng trong thời gian chạyTạo một loại phụ của
070 là không hợp lệlang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
4Tuy nhiên, có thể tạo một
062 dựa trên một
062 'có nguồn gốc'lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
7và kiểm tra đánh máy cho
076 sẽ hoạt động như mong đợiXem PEP 484 để biết thêm chi tiết
Ghi chú
Nhớ lại rằng việc sử dụng bí danh kiểu khai báo hai kiểu tương đương với nhau. Thực hiện
077 sẽ khiến trình kiểm tra kiểu tĩnh coi ________ 2078 chính xác tương đương với ________ 2079 trong mọi trường hợp. Điều này hữu ích khi bạn muốn đơn giản hóa chữ ký loại phức tạpNgược lại,
062 tuyên bố một kiểu là kiểu con của kiểu khác. Thực hiện
081 sẽ khiến trình kiểm tra loại tĩnh coi
070 là một phân lớp của
079, có nghĩa là giá trị của loại
079 không thể được sử dụng ở những nơi mong đợi giá trị của loại
070. Điều này hữu ích khi bạn muốn ngăn ngừa các lỗi logic với chi phí thời gian chạy tối thiểuMới trong phiên bản 3. 5. 2
Đã thay đổi trong phiên bản 3. 10. ______2062 bây giờ là một lớp chứ không phải là một hàm. Có một số chi phí thời gian chạy bổ sung khi gọi
062 qua một chức năng thông thường. Tuy nhiên, chi phí này sẽ giảm trong 3. 11. 0. Có thể gọi¶
Các khung mong đợi chức năng gọi lại của các chữ ký cụ thể có thể được gợi ý loại bằng cách sử dụng
088Ví dụ
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
1Có thể khai báo kiểu trả về của một hàm có thể gọi được mà không chỉ định chữ ký cuộc gọi bằng cách thay thế dấu chấm lửng bằng chữ cho danh sách các đối số trong gợi ý kiểu.
089Các khả năng gọi được lấy các khả năng gọi khác làm đối số có thể chỉ ra rằng các loại tham số của chúng phụ thuộc vào nhau bằng cách sử dụng
048. Ngoài ra, nếu khả năng gọi đó thêm hoặc xóa đối số khỏi các khả năng gọi khác, toán tử
049 có thể được sử dụng. Chúng có dạng tương ứng là
092 và
093Đã thay đổi trong phiên bản 3. 10. ______2028 hiện hỗ trợ
048 và
049. Xem PEP 612 để biết thêm chi tiết. Xem thêm
Tài liệu về
048 và
049 cung cấp các ví dụ về cách sử dụng trong
028Thuốc gốc¶
Vì thông tin loại về các đối tượng được giữ trong vùng chứa không thể được suy luận tĩnh theo cách chung chung, nên các lớp cơ sở trừu tượng đã được mở rộng để hỗ trợ đăng ký biểu thị các loại dự kiến cho các phần tử vùng chứa
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
03Generics có thể được tham số hóa bằng cách sử dụng một nhà máy có sẵn trong cách gõ có tên là
029
00Loại chung do người dùng định nghĩa¶
Một lớp do người dùng định nghĩa có thể được định nghĩa là một lớp chung
01std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
601 với tư cách là một lớp cơ sở định nghĩa rằng lớp std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
602 nhận một tham số kiểu duy nhất là std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603. Điều này cũng làm cho std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603 hợp lệ như một loại trong nội dung lớpLớp cơ sở
030 định nghĩa std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
606 để std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
607 có giá trị như một loại
02Một loại chung có thể có bất kỳ số lượng biến loại nào. Tất cả các loại
029 đều được phép làm tham số cho một loại chung
03Mỗi đối số biến loại cho
030 phải khác biệt. Điều này là không hợp lệ
04Bạn có thể sử dụng nhiều kế thừa với
030
05Khi kế thừa từ các lớp chung, một số biến kiểu có thể được sửa
06Trong trường hợp này,
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
611 có một tham số duy nhất, std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603Sử dụng một lớp chung mà không chỉ định tham số loại sẽ giả định
026 cho mỗi vị trí. Trong ví dụ sau, std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
614 không phải là chung chung nhưng hoàn toàn kế thừa từ std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
615
07Bí danh loại chung do người dùng xác định cũng được hỗ trợ. ví dụ
08Đã thay đổi trong phiên bản 3. 7. ______2030 không còn có siêu dữ liệu tùy chỉnh nữa.
Generics do người dùng định nghĩa cho các biểu thức tham số cũng được hỗ trợ thông qua các biến đặc tả tham số ở dạng
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
617. Hành vi phù hợp với các biến loại' được mô tả ở trên vì các biến đặc tả tham số được mô-đun đánh máy coi là một biến loại chuyên biệt. Một ngoại lệ cho điều này là một danh sách các loại có thể được sử dụng để thay thế một
048
09Hơn nữa, một biến chung chỉ có một biến đặc tả tham số sẽ chấp nhận danh sách tham số ở dạng
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
619 và cả std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
620 vì lý do thẩm mỹ. Trong nội bộ, cái sau được chuyển đổi thành cái trước, vì vậy những điều sau đây là tương đươngstd = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
60Xin lưu ý rằng thuốc generic có
048 có thể không đúng với std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
622 sau khi thay thế trong một số trường hợp vì chúng chủ yếu dành cho kiểm tra loại tĩnhĐã thay đổi trong phiên bản 3. 10. ______2030 hiện có thể được tham số hóa qua các biểu thức tham số. Xem
048 và PEP 612 để biết thêm chi tiết. Lớp chung do người dùng định nghĩa có thể có ABC làm lớp cơ sở mà không có xung đột siêu dữ liệu. Siêu dữ liệu chung không được hỗ trợ. Kết quả của việc tham số hóa các khái quát được lưu vào bộ đệm và hầu hết các loại trong mô-đun gõ đều có thể băm và có thể so sánh bằng nhau
Loại
026¶
Một loại đặc biệt là
026. Trình kiểm tra loại tĩnh sẽ coi mọi loại là tương thích với
026 và
026 là tương thích với mọi loạiĐiều này có nghĩa là có thể thực hiện bất kỳ thao tác hoặc lệnh gọi phương thức nào trên một giá trị kiểu
026 và gán nó cho bất kỳ biến nàostd = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
61Lưu ý rằng không có kiểm tra loại nào được thực hiện khi gán giá trị loại
026 cho loại chính xác hơn. Ví dụ: trình kiểm tra kiểu tĩnh không báo lỗi khi gán std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
631 cho std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
632 mặc dù std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
632 được khai báo là kiểu
033 và nhận giá trị
063 khi chạyHơn nữa, tất cả các hàm không có kiểu trả về hoặc kiểu tham số sẽ mặc định mặc định sử dụng
026std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
62Hành vi này cho phép sử dụng
026 làm lối thoát hiểm khi bạn cần kết hợp mã được nhập động và mã tĩnhĐối chiếu hành vi của
026 với hành vi của std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
639. Tương tự như
026, mỗi loại là một loại phụ của std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
639. Tuy nhiên, không giống như
026, điều ngược lại không đúng. std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
639 không phải là kiểu con của mọi kiểu khácĐiều đó có nghĩa là khi loại của một giá trị là
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
639, trình kiểm tra loại sẽ từ chối hầu hết tất cả các hoạt động trên nó và gán nó cho một biến [hoặc sử dụng nó làm giá trị trả về] của loại chuyên biệt hơn là lỗi loại. Ví dụstd = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
63Sử dụng
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
639 để chỉ ra rằng một giá trị có thể là bất kỳ loại nào theo cách an toàn về kiểu. Sử dụng
026 để chỉ ra rằng một giá trị được nhập độngPhân nhóm danh nghĩa và phân nhóm cấu trúc¶
Ban đầu, PEP 484 đã định nghĩa hệ thống kiểu tĩnh Python là sử dụng kiểu con danh nghĩa. Điều này có nghĩa là một lớp ________ 5647 được cho phép khi một lớp
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
648 được mong đợi nếu và chỉ khi ________ 5647 là một lớp con của std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
648Yêu cầu này trước đây cũng được áp dụng cho các lớp cơ sở trừu tượng, chẳng hạn như
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
651. Vấn đề với cách tiếp cận này là một lớp phải được đánh dấu rõ ràng để hỗ trợ chúng, điều này không phổ biến và không giống như những gì người ta thường làm trong mã Python được gõ động thành ngữ. Ví dụ: điều này phù hợp với PEP 484std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
64PEP 544 cho phép giải quyết vấn đề này bằng cách cho phép người dùng viết đoạn mã trên mà không có lớp cơ sở rõ ràng trong định nghĩa lớp, cho phép
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
652 được coi là kiểu con của cả std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
653 và std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
654 bằng trình kiểm tra kiểu tĩnh. Điều này được gọi là phân nhóm cấu trúc [hoặc phân nhóm tĩnh]std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
65Hơn nữa, bằng cách phân lớp một lớp đặc biệt
037, người dùng có thể xác định các giao thức tùy chỉnh mới để tận hưởng đầy đủ phân loại cấu trúc [xem ví dụ bên dưới]Nội dung học phần¶
Mô-đun định nghĩa các lớp, chức năng và trình trang trí sau
Ghi chú
Mô-đun này xác định một số loại là các lớp con của các lớp thư viện tiêu chuẩn đã tồn tại từ trước, lớp này cũng mở rộng
030 để hỗ trợ các biến loại bên trong std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657. Các loại này trở nên dư thừa trong Python 3. 9 khi các lớp có sẵn tương ứng được tăng cường để hỗ trợ std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657Các loại dự phòng không được dùng nữa kể từ Python 3. 9 nhưng trình thông dịch sẽ không đưa ra cảnh báo phản đối nào. Dự kiến, trình kiểm tra loại sẽ gắn cờ các loại không dùng nữa khi chương trình được kiểm tra nhắm mục tiêu Python 3. 9 hoặc mới hơn
Các loại không dùng nữa sẽ bị xóa khỏi mô-đun
025 trong phiên bản Python đầu tiên được phát hành 5 năm sau khi phát hành Python 3. 9. 0. Xem chi tiết trong PEP 585—Type Gợi ý Generics Trong Bộ sưu tập Tiêu chuẩnKiểu gõ đặc biệt¶
Các loại đặc biệt¶
Chúng có thể được sử dụng làm loại trong chú thích và không hỗ trợ
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657đang gõ. Bất kỳ ¶Loại đặc biệt cho biết loại không bị ràng buộc
Mọi loại đều tương thích với
026
026 tương thích với mọi loại
Đã thay đổi trong phiên bản 3. 11. ______2026 hiện có thể được sử dụng làm lớp cơ sở. Điều này có thể hữu ích để tránh các lỗi trình kiểm tra kiểu với các lớp có thể gõ ở bất cứ đâu hoặc rất năng động.
đang gõ. Chuỗi ký tự ¶Loại đặc biệt chỉ bao gồm các chuỗi ký tự. Một chuỗi ký tự tương thích với
056, cũng như một
056 khác, nhưng một đối tượng được nhập là
033 thì không. Một chuỗi được tạo bằng cách soạn các đối tượng kiểu
056 cũng được chấp nhận là một
056Thí dụ
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
66Điều này hữu ích cho các API nhạy cảm nơi các chuỗi tùy ý do người dùng tạo có thể gây ra sự cố. Ví dụ: hai trường hợp trên tạo ra lỗi trình kiểm tra kiểu có thể dễ bị tấn công SQL injection
Xem PEP 675 để biết thêm chi tiết
Mới trong phiên bản 3. 11
đang gõ. Không bao giờ ¶Loại dưới cùng, một loại không có thành viên
Điều này có thể được sử dụng để xác định một hàm không bao giờ được gọi hoặc một hàm không bao giờ trả về
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
67Mới trong phiên bản 3. 11. Trên các phiên bản Python cũ hơn,
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
669 có thể được sử dụng để diễn đạt cùng một khái niệm. std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
670 đã được thêm vào để làm cho ý nghĩa rõ ràng hơn. đang gõ. NoReturn ¶Loại đặc biệt chỉ ra rằng một hàm không bao giờ trả về. Ví dụ
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
68std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
669 cũng có thể được sử dụng làm loại dưới cùng, loại không có giá trị. Bắt đầu bằng Python 3. 11, loại std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
670 nên được sử dụng cho khái niệm này để thay thế. Người kiểm tra loại nên đối xử với cả hai như nhauMới trong phiên bản 3. 5. 4
Mới trong phiên bản 3. 6. 2
đang gõ. Bản thân ¶Loại đặc biệt để đại diện cho lớp kèm theo hiện tại. Ví dụ
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
69Chú thích này về mặt ngữ nghĩa tương đương với chú thích sau, mặc dù theo cách ngắn gọn hơn
John
12
00Nói chung nếu một cái gì đó hiện đang theo mô hình của
John
12
01Bạn nên sử dụng
055 vì các lệnh gọi tới std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
674 sẽ có kiểu trả về là std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
675 chứ không phải là std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
676Các trường hợp sử dụng phổ biến khác bao gồm
Các
677 được sử dụng làm hàm tạo thay thế và trả về các thể hiện của tham sốstd = type['student', [object,], dict[name='John', age=12]] print[std.name] print[std.age]
678std = type['student', [object,], dict[name='John', age=12]] print[std.name] print[std.age]
Chú thích một phương thức
679 tự trả vềstd = type['student', [object,], dict[name='John', age=12]] print[std.name] print[std.age]
Xem PEP 673 để biết thêm chi tiết
Mới trong phiên bản 3. 11
đang gõ. TypeAlias ¶Chú thích đặc biệt để khai báo rõ ràng một loại bí danh . Ví dụ.
John
12
02Xem PEP 613 để biết thêm chi tiết về bí danh loại rõ ràng
Mới trong phiên bản 3. 10
Biểu mẫu đặc biệt¶
Chúng có thể được sử dụng làm loại trong chú thích bằng cách sử dụng
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657, mỗi loại có một cú pháp duy nhấtđang gõ. Tuple ¶Loại tuple; . Loại của bộ dữ liệu trống có thể được viết là
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
682Thí dụ.
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
683 là một bộ gồm hai phần tử tương ứng với các biến kiểu T1 và T2. std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
684 là một bộ gồm một số nguyên, một số float và một chuỗiĐể chỉ định một bộ có độ dài thay đổi thuộc loại đồng nhất, hãy sử dụng dấu chấm lửng bằng chữ, e. g.
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
685. Một std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
686 đơn giản tương đương với std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
687 và lần lượt là std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
688Không dùng nữa kể từ phiên bản 3. 9. ______5689 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . đang gõ. Liên minh ¶loại hình công đoàn;
Để xác định một công đoàn, sử dụng e. g.
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
693 hoặc viết tắt là std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
694. Sử dụng tốc ký đó được khuyến khích. Thông tin chi tiếtCác đối số phải là các loại và phải có ít nhất một
Liên minh công đoàn bị san phẳng, đ. g
03John 12
Liên minh của một đối số duy nhất biến mất, e. g
04John 12
Đối số dư thừa được bỏ qua, e. g
05John 12
Khi so sánh các công đoàn, thứ tự đối số bị bỏ qua, e. g
06John 12
Bạn không thể phân lớp hoặc khởi tạo một
027
Bạn không thể viết
696std = type['student', [object,], dict[name='John', age=12]] print[std.name] print[std.age]
Đã thay đổi trong phiên bản 3. 7. Không xóa các lớp con rõ ràng khỏi liên kết trong thời gian chạy.
Đã thay đổi trong phiên bản 3. 10. Các hiệp hội hiện có thể được viết là
045. Xem biểu thức loại liên kết . đang gõ. Tùy chọn ¶loại tùy chọn
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
698 tương đương với std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
699 [hoặc John
12
000]Lưu ý rằng đây không phải là khái niệm giống như đối số tùy chọn, là đối số có giá trị mặc định. Đối số tùy chọn với giá trị mặc định không yêu cầu vòng loại
John
12
001 trên chú thích loại của nó chỉ vì nó là tùy chọn. Ví dụJohn
12
07Mặt khác, nếu giá trị rõ ràng của
060 được cho phép, thì việc sử dụng John
12
001 là phù hợp, cho dù đối số có phải là tùy chọn hay không. Ví dụJohn
12
08Đã thay đổi trong phiên bản 3. 10. Tùy chọn bây giờ có thể được viết là
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
699. Xem biểu thức loại liên kết . đang gõ. Có thể gọi được ¶Loại có thể gọi được;
Cú pháp đăng ký phải luôn được sử dụng với chính xác hai giá trị. danh sách đối số và kiểu trả về. Danh sách đối số phải là một danh sách các loại hoặc dấu chấm lửng;
Không có cú pháp để chỉ ra các đối số tùy chọn hoặc từ khóa; .
089 [dấu chấm lửng theo nghĩa đen] có thể được sử dụng để nhập gợi ý có thể gọi được, lấy bất kỳ số lượng đối số nào và trả về John
12
007. Một
028 đơn giản tương đương với John
12
009 và lần lượt là John
12
010Các khả năng gọi được lấy các khả năng gọi khác làm đối số có thể chỉ ra rằng các loại tham số của chúng phụ thuộc vào nhau bằng cách sử dụng
048. Ngoài ra, nếu khả năng gọi đó thêm hoặc xóa đối số khỏi các khả năng gọi khác, toán tử
049 có thể được sử dụng. Chúng có dạng tương ứng là
092 và
093Không dùng nữa kể từ phiên bản 3. 9. ______6010 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Đã thay đổi trong phiên bản 3. 10. ______2028 hiện hỗ trợ
048 và
049. Xem PEP 612 để biết thêm chi tiết. Xem thêm
Tài liệu về
048 và
049 cung cấp các ví dụ về cách sử dụng với
028đang gõ. Nối ¶Được sử dụng với
028 và
048 để nhập chú thích cho một thứ có thể gọi được cao hơn, bổ sung, loại bỏ hoặc biến đổi các tham số của một thứ có thể gọi khác. Cách sử dụng có dạng John
12
025.
049 hiện chỉ hợp lệ khi được sử dụng làm đối số đầu tiên cho một
028. Tham số cuối cùng của
049 phải là một
048 hoặc dấu chấm lửng [John
12
030]Ví dụ: để chú thích một trình trang trí
John
12
031 cung cấp một John
12
032 cho chức năng được trang trí, có thể sử dụng
049 để chỉ ra rằng John
12
031 mong đợi một hàm có thể gọi được lấy trong một đối số đầu tiên là John
12
035 và trả về một hàm có thể gọi được với một chữ ký kiểu khác. Trong trường hợp này,
048 chỉ ra rằng các loại tham số có thể gọi được trả về phụ thuộc vào các loại tham số của có thể gọi được truyền vàoJohn
12
09Mới trong phiên bản 3. 10
Xem thêm
PEP 612 – Biến thông số kỹ thuật tham số [PEP đã giới thiệu
048 và
049]
048 và
028
Một biến được chú thích bằng
John
12
041 có thể chấp nhận giá trị kiểu John
12
041. Ngược lại, một biến được chú thích bằng John
12
043 có thể chấp nhận các giá trị là chính các lớp – cụ thể, nó sẽ chấp nhận đối tượng lớp của John
12
041. Ví dụJohn
12
10Lưu ý rằng
John
12
043 là hiệp phương saiJohn
12
11Thực tế là
John
12
043 là hiệp phương sai ngụ ý rằng tất cả các lớp con của John
12
041 nên triển khai cùng chữ ký hàm tạo và chữ ký phương thức lớp như John
12
041. Trình kiểm tra loại sẽ gắn cờ vi phạm điều này, nhưng cũng nên cho phép các lệnh gọi hàm tạo trong các lớp con khớp với các lệnh gọi hàm tạo trong lớp cơ sở được chỉ định. Cách trình kiểm tra loại được yêu cầu để xử lý trường hợp cụ thể này có thể thay đổi trong các phiên bản PEP 484 trong tương laiCác tham số pháp lý duy nhất cho
John
12
049 là các lớp,
026, biến loại và liên kết của bất kỳ loại nào trong số này. Ví dụ. John
12
12John
12
051 tương đương với ________ 6049, đến lượt nó tương đương với ________ 6053, là gốc của hệ thống phân cấp siêu dữ liệu của PythonMới trong phiên bản 3. 5. 2
Không dùng nữa kể từ phiên bản 3. 9. ______6054 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . đang gõ. Chữ ¶Loại có thể được sử dụng để chỉ báo cho người kiểm tra loại rằng tham số hàm hoặc biến tương ứng có giá trị tương đương với chữ được cung cấp [hoặc một trong số nhiều chữ]. Ví dụ
John
12
13John
12
056 không thể được phân lớp. Trong thời gian chạy, một giá trị tùy ý được phép làm đối số kiểu cho John
12
056, nhưng trình kiểm tra kiểu có thể áp đặt các hạn chế. Xem PEP 586 để biết thêm chi tiết về các loại chữMới trong phiên bản 3. 8
Đã thay đổi trong phiên bản 3. 9. 1. ______2040 hiện loại bỏ các tham số trùng lặp. So sánh bình đẳng của các đối tượng
040 không còn phụ thuộc vào thứ tự. Các đối tượng
040 hiện sẽ đưa ra một ngoại lệ John
12
061 trong quá trình so sánh đẳng thức nếu một trong các tham số của chúng không có thể băm . đang gõ. ClassVar ¶Cấu trúc kiểu đặc biệt để đánh dấu các biến lớp
Như đã giới thiệu trong PEP 526, một chú thích biến được bao bọc trong ClassVar cho biết rằng một thuộc tính nhất định được dự định sử dụng làm biến lớp và không được đặt trên các phiên bản của lớp đó. Cách sử dụng
John
12
14
036 chỉ chấp nhận các loại và không thể đăng ký thêmBản thân
036 không phải là một lớp và không được sử dụng với John
12
064 hoặc John
12
065.
036 không thay đổi hành vi thời gian chạy Python, nhưng nó có thể được sử dụng bởi trình kiểm tra loại của bên thứ ba. Ví dụ: trình kiểm tra loại có thể gắn cờ mã sau đây là lỗiJohn
12
15Mới trong phiên bản 3. 5. 3
đang gõ. Cuối cùng ¶Một cấu trúc gõ đặc biệt để chỉ ra cho người kiểm tra loại rằng một tên không thể được gán lại hoặc ghi đè trong một lớp con. Ví dụ
John
12
16Không có kiểm tra thời gian chạy của các thuộc tính này. Xem PEP 591 để biết thêm chi tiết
Mới trong phiên bản 3. 8
đang gõ. Bắt buộc ¶ đang gõ. Không bắt buộc ¶Các cấu trúc gõ đặc biệt đánh dấu các phím riêng lẻ của
041 là bắt buộc hoặc không bắt buộc tương ứngXem
041 và PEP 655 để biết thêm chi tiếtMới trong phiên bản 3. 11
đang gõ. Chú thích ¶Một loại, được giới thiệu trong PEP 593 [_______6069], để trang trí các loại hiện có với siêu dữ liệu theo ngữ cảnh cụ thể [có thể là nhiều phần của nó, vì
044 là biến thể]. Cụ thể, loại std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603 có thể được chú thích bằng siêu dữ liệu John
12
072 thông qua gợi ý đánh máy John
12
073. Siêu dữ liệu này có thể được sử dụng cho phân tích tĩnh hoặc trong thời gian chạy. Nếu một thư viện [hoặc công cụ] gặp một gợi ý đánh máy John
12
073 và không có logic đặc biệt nào cho siêu dữ liệu John
12
072, thì thư viện đó sẽ bỏ qua nó và chỉ coi loại đó là std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603. Không giống như chức năng John
12
077 hiện có trong mô-đun
025 vô hiệu hóa hoàn toàn các chú thích kiểm tra đánh máy trên một hàm hoặc một lớp, loại
044 cho phép cả kiểm tra đánh máy tĩnh của std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603 [có thể bỏ qua John
12
072 một cách an toàn] cùng với quyền truy cập thời gian chạy vào John
12
072 trong một ứng dụng cụ thểCuối cùng, trách nhiệm về cách diễn giải các chú thích [nếu có] là trách nhiệm của công cụ hoặc thư viện gặp phải loại
044. Một công cụ hoặc thư viện gặp loại
044 có thể quét qua các chú thích để xác định xem chúng có đáng quan tâm hay không [e. g. , sử dụng John
12
064]Khi một công cụ hoặc thư viện không hỗ trợ chú thích hoặc gặp một chú thích không xác định, nó chỉ nên bỏ qua nó và coi loại chú thích là loại cơ bản
Tùy thuộc vào công cụ sử dụng các chú thích để quyết định xem máy khách có được phép có nhiều chú thích trên một loại hay không và cách hợp nhất các chú thích đó
Vì loại
044 cho phép bạn đặt một số chú thích cùng [hoặc khác] loại trên bất kỳ nút nào, các công cụ hoặc thư viện sử dụng các chú thích đó chịu trách nhiệm xử lý các bản sao tiềm ẩn. Ví dụ: nếu bạn đang thực hiện phân tích phạm vi giá trị, bạn có thể cho phép điều nàyJohn
12
17Chuyển
John
12
087 đến John
12
088 cho phép một người truy cập các chú thích bổ sung khi chạyChi tiết cú pháp
Đối số đầu tiên của
044 phải là loại hợp lệ
Nhiều loại chú thích được hỗ trợ [
044 hỗ trợ các đối số biến đổi]
18John 12
044 phải được gọi với ít nhất hai đối số [
092 không hợp lệ]John 12
Thứ tự của các chú thích được giữ nguyên và các vấn đề cần kiểm tra bằng
19John 12
Các loại
044 lồng nhau được làm phẳng, với siêu dữ liệu được sắp xếp bắt đầu bằng chú thích trong cùng
80John 12
Các chú thích trùng lặp không bị xóa
81John 12
044 có thể được sử dụng với bí danh lồng nhau và bí danh chung
82John 12
Mới trong phiên bản 3. 9
đang gõ. TypeGuard ¶Biểu mẫu nhập đặc biệt được sử dụng để chú thích kiểu trả về của hàm bảo vệ kiểu do người dùng xác định.
052 chỉ chấp nhận một đối số loại duy nhất. Khi chạy, các hàm được đánh dấu theo cách này sẽ trả về một giá trị boolean
052 nhằm mục đích mang lại lợi ích cho việc thu hẹp loại – một kỹ thuật được sử dụng bởi trình kiểm tra loại tĩnh để xác định loại biểu thức chính xác hơn trong luồng mã của chương trình. Thông thường, việc thu hẹp loại được thực hiện bằng cách phân tích luồng mã có điều kiện và áp dụng việc thu hẹp cho một khối mã. Biểu thức điều kiện ở đây đôi khi được gọi là "loại bảo vệ"John
12
83Đôi khi sẽ thuận tiện khi sử dụng hàm boolean do người dùng định nghĩa làm bộ bảo vệ kiểu. Một hàm như vậy nên sử dụng
John
12
097 làm kiểu trả về của nó để cảnh báo những người kiểm tra kiểu tĩnh về ý định nàySử dụng
John
12
098 báo cho trình kiểm tra kiểu tĩnh rằng đối với một chức năng nhất địnhGiá trị trả về là một boolean
Nếu giá trị trả về là
099, loại đối số của nó là loại bên trongJohn 12
052
Ví dụ
John
12
84Nếu
John
12
101 là một phương thức lớp hoặc thể hiện, thì kiểu trong
052 ánh xạ tới kiểu của tham số thứ hai sau std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
678 hoặc John
12
104Tóm lại, dạng
John
12
105, có nghĩa là nếu John
12
106 trả về John
12
099, thì John
12
108 thu hẹp từ John
12
109 thành John
12
110Ghi chú
John
12
110 không nhất thiết phải là dạng hẹp hơn của John
12
109 – nó thậm chí có thể là dạng rộng hơn. Lý do chính là để cho phép những thứ như thu hẹp John
12
113 thành John
12
114 mặc dù cái sau không phải là kiểu con của cái trước, vì John
12
115 là bất biến. Trách nhiệm viết các bộ bảo vệ loại an toàn thuộc về người dùng
052 cũng hoạt động với các biến kiểu. Xem PEP 647 để biết thêm chi tiếtMới trong phiên bản 3. 10
Xây dựng các loại chung¶
Chúng không được sử dụng trong chú thích. Họ đang xây dựng các khối để tạo các loại chung
lớp đang gõ. Chung ¶Lớp cơ sở trừu tượng cho các loại chung
Một kiểu chung thường được khai báo bằng cách kế thừa từ một phần khởi tạo của lớp này với một hoặc nhiều biến kiểu. Ví dụ: loại ánh xạ chung có thể được định nghĩa là
John
12
85Lớp này sau đó có thể được sử dụng như sau
John
12
86lớp đang gõ. TypeVar ¶Loại biến
Cách sử dụng
John
12
87Biến loại tồn tại chủ yếu vì lợi ích của trình kiểm tra loại tĩnh. Chúng đóng vai trò là tham số cho các kiểu chung cũng như cho các định nghĩa hàm chung. Xem
030 để biết thêm thông tin về các loại chung. Các chức năng chung hoạt động như sauJohn
12
88Lưu ý rằng các biến loại có thể bị ràng buộc, bị ràng buộc hoặc không, nhưng không thể vừa bị ràng buộc vừa bị ràng buộc
Biến loại ràng buộc và biến loại ràng buộc có ngữ nghĩa khác nhau theo một số cách quan trọng. Sử dụng biến loại liên kết có nghĩa là
029 sẽ được giải bằng loại cụ thể nhất có thểJohn
12
89Các biến loại có thể được liên kết với các loại cụ thể, loại trừu tượng [ABC hoặc giao thức] và thậm chí cả các loại kết hợp
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
40Tuy nhiên, việc sử dụng một biến loại bị ràng buộc có nghĩa là chỉ có thể giải được biến số
029 dưới dạng chính xác một trong các ràng buộc đã cholang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
41Khi chạy,
John
12
120 sẽ tăng John
12
061. Nói chung, không nên sử dụng John
12
064 và John
12
065 với các loạiCác biến loại có thể được đánh dấu hiệp biến hoặc chống biến bằng cách chuyển
John
12
124 hoặc John
12
125. Xem PEP 484 để biết thêm chi tiết. Theo mặc định, các biến loại là bất biếnlớp đang gõ. TypeVarTuple ¶Loại tuple biến. Một dạng chuyên biệt của
John
12
126 cho phép sử dụng thuốc generic biến thểBiến loại bình thường cho phép tham số hóa với một loại duy nhất. Ngược lại, một bộ biến kiểu cho phép tham số hóa với số kiểu tùy ý bằng cách hành động giống như một số biến kiểu tùy ý được bao bọc trong một bộ. Ví dụ
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
42Lưu ý việc sử dụng toán tử giải nén
John
12
127 trong John
12
128. Về mặt khái niệm, bạn có thể nghĩ về John
12
129 như một bộ biến kiểu John
12
130. John
12
128 sau đó sẽ trở thành John
12
132, tương đương với John
12
133. [Lưu ý rằng trong các phiên bản Python cũ hơn, bạn có thể thấy điều này được viết bằng cách sử dụng John
12
134 thay vì John
12
135. ]Loại bộ dữ liệu biến phải luôn được giải nén. Điều này giúp phân biệt các bộ biến kiểu với các biến kiểu bình thường
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
43Bộ dữ liệu biến loại có thể được sử dụng trong cùng ngữ cảnh như biến loại bình thường. Ví dụ: trong định nghĩa lớp, đối số và kiểu trả về
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
44Các bộ dữ liệu biến loại có thể được kết hợp vui vẻ với các biến loại bình thường
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
45Tuy nhiên, lưu ý rằng nhiều nhất một bộ biến kiểu có thể xuất hiện trong một danh sách duy nhất các đối số kiểu hoặc tham số kiểu
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
46Cuối cùng, một bộ biến kiểu đã giải nén có thể được sử dụng làm chú thích kiểu của
John
12
136lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
47Ngược lại với các chú thích không được giải nén của
John
12
136 - e. g. John
12
138, sẽ xác định rằng tất cả các đối số là
063 - John
12
140 cho phép tham chiếu đến các loại đối số riêng lẻ trong John
12
136. Ở đây, điều này cho phép chúng tôi đảm bảo các loại của John
12
136 được chuyển đến John
12
143 khớp với các loại đối số [vị trí] của John
12
144Xem PEP 646 để biết thêm chi tiết về các bộ biến loại
Mới trong phiên bản 3. 11
đang gõ. Giải nén ¶Toán tử đánh máy đánh dấu một đối tượng theo khái niệm là đã được giải nén. Ví dụ: sử dụng toán tử giải nén
John
12
127 trên John
12
146 tương đương với việc sử dụng John
12
134 để đánh dấu bộ biến kiểu là đã được giải nénlang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
48Trên thực tế,
John
12
134 có thể được sử dụng thay thế cho nhau với John
12
127 trong ngữ cảnh của các loại. Bạn có thể thấy John
12
134 được sử dụng một cách rõ ràng trong các phiên bản Python cũ hơn, trong đó không thể sử dụng John
12
127 ở một số nơi nhất địnhlang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
49Mới trong phiên bản 3. 11
lớp đang gõ. Thông số kỹ thuật[tên , *, bound=None, covariant=False, contravariant=False]¶Thông số kỹ thuật biến. Một phiên bản chuyên biệt của
John
12
152Cách sử dụng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
70Các biến đặc tả tham số tồn tại chủ yếu vì lợi ích của trình kiểm tra kiểu tĩnh. Chúng được sử dụng để chuyển tiếp các loại tham số của một hàm có thể gọi này sang một hàm có thể gọi khác - một mẫu thường thấy trong các hàm và trình trang trí bậc cao hơn. Chúng chỉ hợp lệ khi được sử dụng trong
049 hoặc làm đối số đầu tiên cho
028 hoặc làm tham số cho Generics do người dùng xác định. Xem
030 để biết thêm thông tin về các loại chungVí dụ: để thêm chức năng ghi nhật ký cơ bản, người ta có thể tạo một trình trang trí
John
12
156 để ghi nhật ký các lệnh gọi chức năng. Biến đặc tả tham số cho trình kiểm tra kiểu biết rằng có thể gọi được chuyển vào trình trang trí và có thể gọi mới được trả về bởi nó có các tham số loại phụ thuộc lẫn nhaulang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
71Nếu không có
048, cách đơn giản nhất để chú thích điều này trước đây là sử dụng một
029 với ràng buộc John
12
009. Tuy nhiên điều này gây ra hai vấn đềTrình kiểm tra loại không thể gõ kiểm tra chức năng
160 vìJohn 12
136 vàJohn 12
162 phải được gõJohn 12
026
164 có thể được yêu cầu trong phần thân của trình trang tríJohn 12
156 khi trả về hàmJohn 12
160 hoặc trình kiểm tra kiểu tĩnh phải được yêu cầu bỏ quaJohn 12
167John 12
Vì
048 nắm bắt cả tham số vị trí và từ khóa, nên có thể sử dụng John
12
169 và John
12
170 để tách một
048 thành các thành phần của nó. John
12
169 đại diện cho bộ tham số vị trí trong một cuộc gọi nhất định và chỉ nên được sử dụng để chú thích John
12
136. John
12
170 đại diện cho ánh xạ của các tham số từ khóa với các giá trị của chúng trong một cuộc gọi nhất định và chỉ nên được sử dụng để chú thích John
12
162. Cả hai thuộc tính đều yêu cầu tham số được chú thích nằm trong phạm vi. Khi chạy, John
12
169 và John
12
170 lần lượt là các thể hiện của John
12
178 và John
12
179Các biến đặc tả tham số được tạo bằng
John
12
124 hoặc John
12
125 có thể được sử dụng để khai báo các loại chung biến thể hoặc phản biến. Đối số John
12
182 cũng được chấp nhận, tương tự như đối số
029. Tuy nhiên, ngữ nghĩa thực tế của những từ khóa này vẫn chưa được quyết địnhMới trong phiên bản 3. 10
Ghi chú
Chỉ các biến đặc tả tham số được xác định trong phạm vi toàn cầu mới có thể được chọn
Xem thêm
PEP 612 – Biến thông số kỹ thuật tham số [PEP đã giới thiệu
048 và
049]
028 và
049
Đối số và thuộc tính đối số từ khóa của
048. Thuộc tính John
12
169 của một
048 là một thể hiện của John
12
178, và John
12
170 là một thể hiện của John
12
179. Chúng được dành cho nội quan thời gian chạy và không có ý nghĩa đặc biệt đối với trình kiểm tra kiểu tĩnhGọi
John
12
194 trên một trong hai đối tượng này sẽ trả về bản gốc
048lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
72Mới trong phiên bản 3. 10
đang gõ. AnyStr ¶John
12
196 là một John
12
197 được định nghĩa là John
12
198Nó có nghĩa là được sử dụng cho các chức năng có thể chấp nhận bất kỳ loại chuỗi nào mà không cho phép các loại chuỗi khác nhau trộn lẫn. Ví dụ
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
73lớp đang gõ. Giao thức[Chung] ¶Lớp cơ sở cho các lớp giao thức. Các lớp giao thức được định nghĩa như thế này
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
74Các lớp như vậy chủ yếu được sử dụng với các trình kiểm tra kiểu tĩnh nhận biết kiểu con cấu trúc [gõ vịt tĩnh], chẳng hạn
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
75Xem PEP 544 để biết thêm chi tiết. Các lớp giao thức được trang trí bằng
John
12
199 [được mô tả sau] hoạt động như các giao thức thời gian chạy có đầu óc đơn giản, chỉ kiểm tra sự hiện diện của các thuộc tính đã cho, bỏ qua chữ ký loại của chúngCác lớp giao thức có thể chung chung, ví dụ
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
76Mới trong phiên bản 3. 8
@đang gõ. runtime_checkable ¶Đánh dấu một lớp giao thức là một giao thức thời gian chạy
Một giao thức như vậy có thể được sử dụng với
John
12
064 và John
12
065. Điều này làm tăng John
12
061 khi áp dụng cho lớp không có giao thức. Điều này cho phép kiểm tra cấu trúc đơn giản, rất giống với “one trick pony” trong John
12
803 chẳng hạn như std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
651. Ví dụlang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
77Ghi chú
John
12
199 sẽ chỉ kiểm tra sự hiện diện của các phương thức được yêu cầu, không phải chữ ký loại của chúng. Ví dụ: John
12
806 là một lớp, do đó, nó vượt qua kiểm tra John
12
065 đối với
028. Tuy nhiên, phương thức John
12
809 chỉ tồn tại để gọi một John
12
061 với thông báo nhiều thông tin hơn, do đó không thể gọi [khởi tạo] John
12
806Mới trong phiên bản 3. 8
Các chỉ thị đặc biệt khác¶
Chúng không được sử dụng trong chú thích. Họ đang xây dựng các khối để khai báo các loại
lớp đang gõ. NamedTuple ¶Phiên bản đánh máy của
John
12
812Cách sử dụng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
78Điều này tương đương với
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
79Để cung cấp cho một trường một giá trị mặc định, bạn có thể gán cho nó trong nội dung lớp
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
10Các trường có giá trị mặc định phải xuất hiện sau bất kỳ trường nào không có giá trị mặc định
Lớp kết quả có một thuộc tính bổ sung
John
12
813 đưa ra một lệnh ánh xạ tên trường với các loại trường. [Tên trường nằm trong thuộc tính John
12
814 và các giá trị mặc định nằm trong thuộc tính John
12
815, cả hai đều là một phần của API John
12
816. ]Các lớp con
John
12
817 cũng có thể có các tài liệu và phương thứclang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
11Các lớp con của
John
12
817 có thể chung chunglang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
12Sử dụng tương thích ngược
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
13Đã thay đổi trong phiên bản 3. 6. Đã thêm hỗ trợ cho cú pháp chú thích biến PEP 526.
Đã thay đổi trong phiên bản 3. 6. 1. Đã thêm hỗ trợ cho các giá trị, phương thức và chuỗi tài liệu mặc định.
Đã thay đổi trong phiên bản 3. 8. Các thuộc tính
John
12
819 và John
12
813 hiện là từ điển thông thường thay vì phiên bản của John
12
821. Đã thay đổi trong phiên bản 3. 9. Đã xóa thuộc tính
John
12
819 để sử dụng thuộc tính John
12
813 tiêu chuẩn hơn có cùng thông tin. Đã thay đổi trong phiên bản 3. 11. Đã thêm hỗ trợ cho các bộ có tên chung.
lớp đang gõ. Kiểu mới[tên , tp]¶Một lớp trợ giúp để chỉ ra một loại riêng biệt cho trình kiểm tra đánh máy, hãy xem NewType . Khi chạy, nó trả về một đối tượng trả về đối số của nó khi được gọi. Cách sử dụng.
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
14Mới trong phiên bản 3. 5. 2
Đã thay đổi trong phiên bản 3. 10. ______2062 bây giờ là một lớp chứ không phải là một hàm.
lớp đang gõ. TypedDict[dict] ¶Cấu trúc đặc biệt để thêm gợi ý loại vào từ điển. Khi chạy nó là một
John
12
825 đơn giản
041 khai báo một loại từ điển yêu cầu tất cả các phiên bản của nó có một bộ khóa nhất định, trong đó mỗi khóa được liên kết với một giá trị của một loại nhất quán. Kỳ vọng này không được kiểm tra trong thời gian chạy mà chỉ được thực thi bởi trình kiểm tra loại. Cách sử dụnglang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
15Để cho phép sử dụng tính năng này với các phiên bản Python cũ hơn không hỗ trợ PEP 526,
041 hỗ trợ thêm hai dạng cú pháp tương đươngSử dụng một chữ
825 làm đối số thứ haiJohn 12
16lang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
Sử dụng đối số từ khóa
17lang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
Không dùng nữa kể từ phiên bản 3. 11, sẽ bị xóa trong phiên bản 3. 13. Cú pháp đối số từ khóa không được dùng trong 3. 11 và sẽ bị xóa trong 3. 13. Nó cũng có thể không được hỗ trợ bởi bộ kiểm tra kiểu tĩnh.
Cú pháp chức năng cũng nên được sử dụng khi bất kỳ khóa nào không có mã định danh hợp lệ, chẳng hạn như vì chúng là từ khóa hoặc chứa dấu gạch nối. Thí dụ.
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
18Theo mặc định, tất cả các khóa phải có trong một
041. Có thể đánh dấu các khóa riêng lẻ là không bắt buộc bằng cách sử dụng
054lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
19Điều này có nghĩa là một
John
12
831
041 có thể bỏ qua khóa John
12
833Cũng có thể đánh dấu tất cả các khóa là không bắt buộc theo mặc định bằng cách chỉ định tổng số là
John
12
834lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
030Điều này có nghĩa là một
John
12
831
041 có thể bỏ qua bất kỳ phím nào. Trình kiểm tra loại chỉ được mong đợi để hỗ trợ một chữ John
12
834 hoặc John
12
099 làm giá trị của đối số John
12
839. John
12
099 là mặc định và làm cho tất cả các mục được xác định trong nội dung lớp bắt buộcCác khóa riêng lẻ của
John
12
841
041 có thể được đánh dấu theo yêu cầu bằng cách sử dụng
053lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
031Loại
041 có thể kế thừa từ một hoặc nhiều loại
041 khác bằng cách sử dụng cú pháp dựa trên lớp. Cách sử dụnglang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
032John
12
846 có ba mục. John
12
072, John
12
848 và John
12
849. Nó tương đương với định nghĩa nàylang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
033Một
041 không thể kế thừa từ một lớp không phải ____2041, ngoại trừ
030. Ví dụlang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
034Một
041 có thể là chung chunglang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
035Có thể xem xét nội quan một
041 thông qua các lệnh chú thích [xem Các phương pháp hay nhất về chú thích để biết thêm thông tin về các phương pháp hay nhất về chú thích], John
12
855, John
12
856 và . __total__ ¶John
12
858 đưa ra giá trị của đối số John
12
839. Thí dụlang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
036__required_keys__ ¶Mới trong phiên bản 3. 9
__tùy chọn_keys__ ¶John
12
860 và John
12
861 lần lượt trả về các đối tượng John
12
862 chứa các khóa bắt buộc và không bắt buộcCác khóa được đánh dấu bằng
053 sẽ luôn xuất hiện trong ________ 6856 và các khóa được đánh dấu bằng
054 sẽ luôn xuất hiện trong ________ 6857Để tương thích ngược với Python 3. 10 trở xuống, cũng có thể sử dụng tính kế thừa để khai báo cả khóa bắt buộc và khóa không bắt buộc trong cùng một
041. Điều này được thực hiện bằng cách khai báo một
041 với một giá trị cho đối số John
12
839 và sau đó kế thừa từ nó trong một
041 khác với một giá trị khác cho John
12
839lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
037Mới trong phiên bản 3. 9
Xem PEP 589 để biết thêm ví dụ và quy tắc chi tiết về việc sử dụng
041Mới trong phiên bản 3. 8
Đã thay đổi trong phiên bản 3. 11. Đã thêm hỗ trợ đánh dấu các khóa riêng lẻ là
053 hoặc
054. Xem PEP 655. Đã thay đổi trong phiên bản 3. 11. Đã thêm hỗ trợ cho các
041 chung. Bộ sưu tập bê tông chung¶
Tương ứng với các loại tích hợp¶
lớp đang gõ. Dict[dict, MutableMapping[KT, VT]]¶Một phiên bản chung của
John
12
825. Hữu ích cho việc chú thích các loại trả lại. Để chú thích các đối số, nên sử dụng loại bộ sưu tập trừu tượng, chẳng hạn như John
12
877Loại này có thể được sử dụng như sau
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
038Không dùng nữa kể từ phiên bản 3. 9. ______6878 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Danh sách[danh sách, MutableSequence[T]]¶Phiên bản chung của
John
12
115. Hữu ích cho việc chú thích các loại trả lại. Để chú thích các đối số, nên sử dụng loại bộ sưu tập trừu tượng, chẳng hạn như John
12
881 hoặc std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
651Loại này có thể được sử dụng như sau
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
039Không dùng nữa kể từ phiên bản 3. 9. ______6883 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Set[set, MutableSet[T]]¶Một phiên bản chung của
John
12
885. Hữu ích cho việc chú thích các loại trả lại. Để chú thích các đối số, nên sử dụng loại bộ sưu tập trừu tượng, chẳng hạn như John
12
886Không dùng nữa kể từ phiên bản 3. 9. ______6885 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. FrozenSet[frozenset, AbstractSet[T_co]]¶Một phiên bản chung của
John
12
889Không dùng nữa kể từ phiên bản 3. 9. ______6889 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Ghi chú
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
686 là một dạng đặc biệtTương ứng với các loại trong John
12
893¶
lớp đang gõ. DefaultDict[bộ sưu tập. defaultdict, MutableMapping[KT, VT]] ¶John
12
Một phiên bản chung của
John
12
894Mới trong phiên bản 3. 5. 2
Không dùng nữa kể từ phiên bản 3. 9. ______6894 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. OrderedDict[bộ sưu tập. OrderedDict, MutableMapping[KT, VT]] ¶Một phiên bản chung của
John
12
897Mới trong phiên bản 3. 7. 2
Không dùng nữa kể từ phiên bản 3. 9. ______6897 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Bản đồ chuỗi[bộ sưu tập. ChainMap, MutableMapping[KT, VT]] ¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
400Mới trong phiên bản 3. 5. 4
Mới trong phiên bản 3. 6. 1
Không dùng nữa kể từ phiên bản 3. 9. ______7400 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Bộ đếm[bộ sưu tập. Bộ đếm, Dict[T, int]] ¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
403Mới trong phiên bản 3. 5. 4
Mới trong phiên bản 3. 6. 1
Không dùng nữa kể từ phiên bản 3. 9. ______7403 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Deque[deque, MutableSequence[T]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
406Mới trong phiên bản 3. 5. 4
Mới trong phiên bản 3. 6. 1
Không dùng nữa kể từ phiên bản 3. 9. ______7406 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Các loại bê tông khác¶
lớp đang gõ. IO ¶ lớp gõ. TextIO ¶ lớp gõ. Nhị phânIO ¶Loại chung
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
409 và các lớp con của nó lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
410 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
411 đại diện cho các loại luồng I/O, chẳng hạn như được trả về bởi lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
412Không dùng nữa kể từ phiên bản 3. 8, sẽ bị xóa trong phiên bản 3. 13. Không gian tên
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
413 không được dùng nữa và sẽ bị xóa. Thay vào đó, các loại này nên được nhập trực tiếp từ
025. lớp đang gõ. Mẫu ¶ lớp gõ. Trận đấu ¶Các bí danh loại này tương ứng với các loại trả về từ
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
415 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
416. Các loại này [và các chức năng tương ứng] là chung chung trong ________ 6196 và có thể được làm cụ thể bằng cách viết _______ 7418, ________ 7419, lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
420 hoặc lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
421Không dùng nữa kể từ phiên bản 3. 8, sẽ bị xóa trong phiên bản 3. 13. Không gian tên
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
422 không được dùng nữa và sẽ bị xóa. Thay vào đó, các loại này nên được nhập trực tiếp từ
025. Không dùng nữa kể từ phiên bản 3. 9. Các lớp
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
424 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
425 từ lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
426 hiện hỗ trợ std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Văn bản ¶lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
428 là bí danh của
033. Nó được cung cấp để cung cấp đường dẫn tương thích chuyển tiếp cho mã Python 2. trong Python 2, lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
428 là bí danh của lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
431Sử dụng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
428 để cho biết rằng một giá trị phải chứa chuỗi unicode theo cách tương thích với cả Python 2 và Python 3
000Mới trong phiên bản 3. 5. 2
Không dùng nữa kể từ phiên bản 3. 11. Python 2 không còn được hỗ trợ và hầu hết các trình kiểm tra kiểu cũng không còn hỗ trợ kiểm tra kiểu mã Python 2. Việc xóa bí danh hiện chưa được lên kế hoạch, nhưng người dùng được khuyến khích sử dụng
033 thay vì lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
428 bất cứ khi nào có thể. Các lớp cơ sở trừu tượng¶
Tương ứng với các bộ sưu tập trong John
12
803¶
lớp đang gõ. Bộ trừu tượng[Bộ sưu tập[T_co]]¶John
12
Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
436Không dùng nữa kể từ phiên bản 3. 9. ______7436 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. ByteString[Sequence[int]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
439Loại này đại diện cho các loại
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
440, lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
441 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
442 của chuỗi byteLà cách viết tắt của loại này, có thể sử dụng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
440 để chú thích các đối số thuộc bất kỳ loại nào được đề cập ở trênKhông dùng nữa kể từ phiên bản 3. 9. ______7439 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Bộ sưu tập[Có kích thước, Có thể lặp lại[T_co], Container[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
446Mới trong phiên bản 3. 6. 0
Không dùng nữa kể từ phiên bản 3. 9. ______7446 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Vùng chứa[Chung[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
449Không dùng nữa kể từ phiên bản 3. 9. ______7449 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. ItemsView[MappingView, AbstractSet[tuple[KT_co, VT_co]]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
452Không dùng nữa kể từ phiên bản 3. 9. ______7452 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. KeysView[MappingView, AbstractSet[KT_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
455Không dùng nữa kể từ phiên bản 3. 9. ______7455 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Ánh xạ[Bộ sưu tập[KT], Chung[KT, VT_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
458. Loại này có thể được sử dụng như sau
001Không dùng nữa kể từ phiên bản 3. 9. ______7458 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Chế độ xem ánh xạ[Sized] ¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
461Không dùng nữa kể từ phiên bản 3. 9. ______7461 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Mapping có thể thay đổi[Mapping[KT, VT]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
464Không dùng nữa kể từ phiên bản 3. 9. ______7464 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. MutableSequence[Sequence[T]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
467Không dùng nữa kể từ phiên bản 3. 9. ______7467 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
470Không dùng nữa kể từ phiên bản 3. 9. ______7470 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Trình tự[Có thể đảo ngược[T_co], Bộ sưu tập[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
473Không dùng nữa kể từ phiên bản 3. 9. ______7473 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Chế độ xem giá trị[Chế độ xem bản đồ, Bộ sưu tập[_VT_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
476Không dùng nữa kể từ phiên bản 3. 9. ______7476 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Tương ứng với các loại khác trong John
12
803¶
lớp đang gõ. Có thể lặp lại[Chung[T_co]]¶John
12
Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
480Không dùng nữa kể từ phiên bản 3. 9. ______7480 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Iterator[Iterable[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
483Không dùng nữa kể từ phiên bản 3. 9. ______7483 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Trình tạo[Iterator[T_co], Chung[T_co, T_contra, V_co]]¶Trình tạo có thể được chú thích theo loại chung chung
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
486. Ví dụ
002Lưu ý rằng không giống như nhiều thuốc generic khác trong mô-đun đánh máy,
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
487 của lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
488 hoạt động trái ngược, không đồng biến hoặc bất biếnNếu trình tạo của bạn chỉ mang lại giá trị, hãy đặt
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
487 và John
12
007 thành
060
003Ngoài ra, hãy chú thích trình tạo của bạn có kiểu trả về là
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
492 hoặc lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
493
004Không dùng nữa kể từ phiên bản 3. 9. ______7494 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Có thể băm ¶Bí danh của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
496lớp đang gõ. Có thể đảo ngược[Có thể lặp lại[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
497Không dùng nữa kể từ phiên bản 3. 9. ______7497 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Kích cỡ ¶Bí danh của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
700Lập trình không đồng bộ¶
lớp đang gõ. Coroutine[Awaitable[V_co], Chung[T_co, T_contra, V_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
701. Ví dụ, phương sai và thứ tự của các biến loại tương ứng với biến của lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
488
005Mới trong phiên bản 3. 5. 3
Không dùng nữa kể từ phiên bản 3. 9. ______7701 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. AsyncGenerator[AsyncIterator[T_co], Generic[T_co, T_contra]]¶Trình tạo không đồng bộ có thể được chú thích theo loại chung
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
705. Ví dụ
006Không giống như các trình tạo thông thường, trình tạo không đồng bộ không thể trả về giá trị, vì vậy không có tham số loại
John
12
007. Như với lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
488, lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
487 hoạt động trái ngượcNếu trình tạo của bạn sẽ chỉ mang lại giá trị, hãy đặt
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
487 thành
060
007Ngoài ra, hãy chú thích trình tạo của bạn có kiểu trả về là
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
711 hoặc lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
712
008Mới trong phiên bản 3. 6. 1
Không dùng nữa kể từ phiên bản 3. 9. ______7713 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. AsyncIterable[Chung[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
715Mới trong phiên bản 3. 5. 2
Không dùng nữa kể từ phiên bản 3. 9. ______7715 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. AsyncIterator[AsyncIterable[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
718Mới trong phiên bản 3. 5. 2
Không dùng nữa kể từ phiên bản 3. 9. ______7718 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. Có thể chờ đợi[Chung[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
721Mới trong phiên bản 3. 5. 2
Không dùng nữa kể từ phiên bản 3. 9. ______7721 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Các loại trình quản lý ngữ cảnh¶
lớp đang gõ. Trình quản lý bối cảnh[Chung[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
724Mới trong phiên bản 3. 5. 4
Mới trong phiên bản 3. 6. 0
Không dùng nữa kể từ phiên bản 3. 9. ______7724 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . lớp đang gõ. AsyncContextManager[Chung[T_co]]¶Một phiên bản chung của
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
727Mới trong phiên bản 3. 5. 4
Mới trong phiên bản 3. 6. 2
Không dùng nữa kể từ phiên bản 3. 9. ______7727 hiện hỗ trợ đăng ký [
std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
657]. Xem PEP 585 và Loại bí danh chung . Giao thức¶
Các giao thức này được trang trí bằng
John
12
199lớp đang gõ. Hỗ trợAbs ¶Một ABC với một phương thức trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
731 đồng biến trong kiểu trả về của nólớp đang gõ. Byte hỗ trợ ¶Một ABC với một phương pháp trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
732lớp đang gõ. Hỗ trợ Phức hợp ¶Một ABC với một phương pháp trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
733lớp đang gõ. Hỗ trợFloat ¶Một ABC với một phương pháp trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
734lớp đang gõ. Chỉ số hỗ trợ ¶Một ABC với một phương pháp trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
735Mới trong phiên bản 3. 8
lớp đang gõ. Hỗ trợ Int ¶Một ABC với một phương pháp trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
736lớp đang gõ. Vòng hỗ trợ ¶Một ABC với một phương thức trừu tượng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
737 đồng biến trong kiểu trả về của nóChức năng và trang trí¶
đang gõ. truyền[typ , val]¶Truyền một giá trị cho một loại
Điều này trả về giá trị không thay đổi. Đối với trình kiểm tra loại, điều này báo hiệu rằng giá trị trả về có loại được chỉ định, nhưng trong thời gian chạy, chúng tôi cố tình không kiểm tra bất kỳ thứ gì [chúng tôi muốn điều này càng nhanh càng tốt]
đang gõ. assert_type[val , typ, /]¶Yêu cầu trình kiểm tra loại tĩnh xác nhận rằng val có loại được suy luận
Khi trình kiểm tra loại gặp lệnh gọi tới
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
738, nó sẽ báo lỗi nếu giá trị không thuộc loại đã chỉ định
009Khi chạy, điều này trả về đối số đầu tiên không thay đổi mà không có tác dụng phụ
Chức năng này hữu ích để đảm bảo sự hiểu biết của trình kiểm tra loại về tập lệnh phù hợp với ý định của nhà phát triển
010Mới trong phiên bản 3. 11
đang gõ. assert_never[arg , /]¶Yêu cầu trình kiểm tra loại tĩnh xác nhận rằng một dòng mã không thể truy cập được
Thí dụ
011Ở đây, các chú thích cho phép trình kiểm tra loại suy luận rằng trường hợp cuối cùng không bao giờ có thể thực thi, bởi vì
John
12
108 là một
063 hoặc một
033 và cả hai tùy chọn đều nằm trong các trường hợp trước đó. Nếu trình kiểm tra loại thấy rằng có thể truy cập lệnh gọi tới lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
742, nó sẽ phát ra lỗi. Ví dụ: nếu chú thích loại cho John
12
108 thay vì lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
744, trình kiểm tra loại sẽ phát ra lỗi chỉ ra rằng lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
745 thuộc loại lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
746. Đối với lệnh gọi tới lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
747 để vượt qua kiểm tra loại, loại đối số suy ra được truyền vào phải là loại dưới cùng, std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
670 và không có gì khácKhi chạy, điều này ném một ngoại lệ khi được gọi
Xem thêm
Kiểm tra mức độ đầy đủ và mã không thể truy cập có thêm thông tin về kiểm tra mức độ đầy đủ bằng cách gõ tĩnh
Mới trong phiên bản 3. 11
đang gõ. reveal_type[obj , /]¶Tiết lộ loại tĩnh được suy luận của một biểu thức
Khi trình kiểm tra kiểu tĩnh gặp lệnh gọi hàm này, nó sẽ phát ra chẩn đoán với kiểu đối số. Ví dụ
012Điều này có thể hữu ích khi bạn muốn gỡ lỗi cách trình kiểm tra loại của bạn xử lý một đoạn mã cụ thể
Hàm trả về đối số của nó không thay đổi, cho phép sử dụng nó trong một biểu thức
013Hầu hết các trình kiểm tra loại đều hỗ trợ
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
749 ở mọi nơi, ngay cả khi tên không được nhập từ
025. Nhập tên từ
025 cho phép mã của bạn chạy mà không gặp lỗi thời gian chạy và truyền đạt ý định rõ ràng hơnTrong thời gian chạy, hàm này in kiểu thời gian chạy của đối số của nó thành thiết bị lỗi chuẩn và trả về nó không thay đổi
014Mới trong phiên bản 3. 11
@đang gõ. dataclass_transform ¶lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
752 có thể được sử dụng để trang trí một lớp, siêu dữ liệu hoặc một chức năng mà chính nó là một công cụ trang trí. Sự hiện diện của lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
753 cho một trình kiểm tra kiểu tĩnh biết rằng đối tượng được trang trí thực hiện “phép thuật” trong thời gian chạy để biến đổi một lớp, mang lại cho nó các hành vi giống như lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
754Ví dụ sử dụng với chức năng trang trí
015Trên một lớp cơ sở
016Trên một siêu dữ liệu
017Các lớp
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
755 được xác định ở trên sẽ được xử lý bằng trình kiểm tra loại tương tự như các lớp được tạo bằng lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
756. Ví dụ: bộ kiểm tra loại sẽ cho rằng các lớp này có các phương thức lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
757 chấp nhận lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
758 và
032Lớp, siêu dữ liệu hoặc hàm được trang trí có thể chấp nhận các đối số bool sau đây mà trình kiểm tra loại sẽ cho rằng có tác dụng tương tự như đối với trình trang trí
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
756. _______7761, _______7762, _______7763, _______7764, _______7765, _______7766, _______7767 và _______7768. Giá trị của các đối số này [_______6099 hoặc John
12
834] phải có thể được đánh giá tĩnhCác đối số cho trình trang trí
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
752 có thể được sử dụng để tùy chỉnh các hành vi mặc định của lớp, siêu dữ liệu hoặc chức năng được trang trí
772 cho biết tham sốlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
762 được giả định làlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
099 hayJohn 12
834 nếu nó bị người gọi bỏ quaJohn 12
776 cho biết tham sốlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
763 được giả định là Đúng hay Sai nếu nó bị người gọi bỏ qualang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
778 cho biết liệu tham sốlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
767 được coi là Đúng hay Sai nếu nó bị người gọi bỏ qualang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
780 chỉ định một danh sách tĩnh các lớp hoặc hàm được hỗ trợ mô tả các trường, tương tự nhưlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
781lang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
Các đối số từ khóa khác tùy ý được chấp nhận để cho phép các tiện ích mở rộng có thể có trong tương lai
Trình kiểm tra loại nhận ra các đối số tùy chọn sau trên bộ xác định trường
761 cho biết liệu trường có nên được đưa vào phương pháplang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
757 tổng hợp hay không. Nếu không được chỉ định,lang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
761 mặc định làlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
099John 12
786 cung cấp giá trị mặc định cho trườnglang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
787 cung cấp gọi lại thời gian chạy trả về giá trị mặc định cho trường. Nếu cảlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
786 vàlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
787 đều không được chỉ định, thì trường được coi là không có giá trị mặc định và phải được cung cấp một giá trị khi lớp được khởi tạolang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
790 là bí danh củalang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
787lang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
767 cho biết liệu trường có nên được đánh dấu là chỉ từ khóa hay không. Nếulang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
099, trường sẽ chỉ có từ khóa. NếuJohn 12
834, nó sẽ không chỉ là từ khóa. Nếu không được chỉ định, giá trị của tham sốJohn 12
767 trên đối tượng được trang trí bằnglang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
752 sẽ được sử dụng hoặc nếu không được chỉ định, giá trị củalang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
778 trênlang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
752 sẽ được sử dụnglang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
799 cung cấp tên thay thế cho trường. Tên thay thế này được sử dụng trong phương pháplang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
757 tổng hợplang = 'Python' nums = [1,2,3,4] nums_dict = {'one':1,'two':2,'three':3} print[type[nums]] print[type[lang]] print[type[nums_dict]]
Khi chạy, trình trang trí này ghi lại các đối số của nó trong thuộc tính
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
101 trên đối tượng được trang trí. Nó không có hiệu ứng thời gian chạy khácXem PEP 681 để biết thêm chi tiết
Mới trong phiên bản 3. 11
@đang gõ. quá tải ¶Trình trang trí
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
102 cho phép mô tả các hàm và phương thức hỗ trợ nhiều kiểu kết hợp đối số khác nhau. Một loạt các định nghĩa được trang trí ____9102 phải được theo sau bởi chính xác một định nghĩa không được trang trí ____9102 [cho cùng một chức năng/phương thức]. Các định nghĩa được trang trí bằng lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
102 chỉ dành cho lợi ích của trình kiểm tra loại, vì chúng sẽ bị ghi đè bởi định nghĩa không được trang trí ____ 9102, trong khi định nghĩa sau được sử dụng trong thời gian chạy nhưng trình kiểm tra loại nên bỏ qua. Khi chạy, gọi trực tiếp một hàm được trang trí bằng lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
102 sẽ tăng lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
108. Một ví dụ về quá tải cung cấp một loại chính xác hơn có thể được biểu thị bằng cách sử dụng liên kết hoặc biến loại
018Xem PEP 484 để biết thêm chi tiết và so sánh với các ngữ nghĩa đánh máy khác
Đã thay đổi trong phiên bản 3. 11. Các chức năng bị quá tải giờ đây có thể được xem xét kỹ trong thời gian chạy bằng cách sử dụng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
109. đang gõ. get_overloads[func] ¶Trả về một chuỗi các định nghĩa được trang trí bằng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
102 cho func. func là đối tượng chức năng để thực hiện chức năng quá tải. Ví dụ: đưa ra định nghĩa về lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
111 trong tài liệu về lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
102, lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
113 sẽ trả về một chuỗi gồm ba đối tượng hàm cho ba lần quá tải đã xác định. Nếu được gọi trên một hàm không có quá tải, lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
109 trả về một chuỗi trốnglang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
109 có thể được sử dụng để xem xét nội hàm một hàm bị quá tải khi chạyMới trong phiên bản 3. 11
đang gõ. clear_overloads[] ¶Xóa tất cả các quá tải đã đăng ký trong sổ đăng ký nội bộ. Điều này có thể được sử dụng để lấy lại bộ nhớ được sử dụng bởi sổ đăng ký
Mới trong phiên bản 3. 11
@đang gõ. cuối cùng ¶Một trình trang trí để chỉ ra cho người kiểm tra loại rằng phương thức được trang trí không thể bị ghi đè và lớp được trang trí không thể được phân lớp. Ví dụ
019Không có kiểm tra thời gian chạy của các thuộc tính này. Xem PEP 591 để biết thêm chi tiết
Mới trong phiên bản 3. 8
Đã thay đổi trong phiên bản 3. 11. Người trang trí bây giờ sẽ đặt thuộc tính
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
116 thành John
12
099 trên đối tượng được trang trí. Do đó, một kiểm tra như lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
118 có thể được sử dụng trong thời gian chạy để xác định xem một đối tượng lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
119 đã được đánh dấu là cuối cùng hay chưa. Nếu đối tượng được trang trí không hỗ trợ cài đặt thuộc tính, trình trang trí sẽ trả về đối tượng không thay đổi mà không đưa ra ngoại lệ. @đang gõ. no_type_check ¶Trình trang trí để chỉ ra rằng các chú thích không phải là gợi ý loại
Cái này hoạt động như lớp hoặc chức năng trang trí . Với một lớp, nó áp dụng đệ quy cho tất cả các phương thức và lớp được định nghĩa trong lớp đó [nhưng không áp dụng cho các phương thức được định nghĩa trong lớp cha hoặc lớp con của nó].
Điều này làm thay đổi [các] chức năng tại chỗ
@đang gõ. no_type_check_decorator ¶Người trang trí để cung cấp cho người trang trí khác hiệu ứng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
120Điều này bao bọc công cụ trang trí bằng thứ gì đó bao bọc chức năng được trang trí trong
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
120@đang gõ. type_check_only ¶Trình trang trí để đánh dấu một lớp hoặc chức năng không khả dụng khi chạy
Bản thân trình trang trí này không có sẵn trong thời gian chạy. Nó chủ yếu nhằm đánh dấu các lớp được định nghĩa trong các tệp sơ khai kiểu nếu việc triển khai trả về một thể hiện của một lớp riêng
020Lưu ý rằng không nên trả lại các phiên bản của các lớp riêng tư. Tốt nhất là công khai các lớp như vậy
Người trợ giúp nội tâm¶
đang gõ. get_type_hints[obj , globalns=None, localns=None, include_extras=False]¶Trả về một từ điển chứa các gợi ý kiểu cho một hàm, phương thức, mô-đun hoặc đối tượng lớp
Điều này thường giống như
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
122. Ngoài ra, các tham chiếu chuyển tiếp được mã hóa dưới dạng chuỗi ký tự được xử lý bằng cách đánh giá chúng trong các không gian tên lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
123 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
124. Đối với một lớp John
12
041, hãy trả về một từ điển được tạo bằng cách hợp nhất tất cả các John
12
813 cùng với lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
127 theo thứ tự ngược lạiHàm thay thế đệ quy tất cả
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
128 bằng std = type['student', [object,], dict[name='John', age=12]]
print[std.name]
print[std.age]
603, trừ khi lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
130 được đặt thành John
12
099 [xem
044 để biết thêm thông tin]. Ví dụ
021Ghi chú
John
12
088 không hoạt động với loại bí danh đã nhập bao gồm tham chiếu chuyển tiếp. Cho phép đánh giá chú thích bị trì hoãn [PEP 563] có thể loại bỏ nhu cầu đối với hầu hết các tham chiếu chuyển tiếp. Đã thay đổi trong phiên bản 3. 9. Đã thêm tham số
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
130 như một phần của PEP 593. Đã thay đổi trong phiên bản 3. 11. Trước đây,
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
135 đã được thêm vào cho các chú thích hàm và phương thức nếu giá trị mặc định bằng
060 được đặt. Bây giờ chú thích được trả lại không thay đổi. đang gõ. get_args[tp] ¶ . typing.get_origin[tp] ¶Cung cấp nội quan cơ bản cho các loại chung và các hình thức gõ đặc biệt
Đối với một đối tượng gõ có dạng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
137, các hàm này trả về lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
138 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
139. Nếu lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
138 là bí danh chung cho lớp dựng sẵn hoặc lớp John
12
893, thì nó sẽ được chuẩn hóa thành lớp ban đầu. Nếu lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
138 là một liên kết hoặc
040 chứa trong một loại chung khác, thứ tự của lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
139 có thể khác với thứ tự của các đối số ban đầu lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
145 do bộ nhớ đệm loại. Đối với các đối tượng không được hỗ trợ, hãy trả về
060 và lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
147 tương ứng. ví dụ
022Mới trong phiên bản 3. 8
đang gõ. được đánh máy[đến] ¶Kiểm tra xem một loại có phải là
041 khôngVí dụ
023Mới trong phiên bản 3. 10
lớp đang gõ. ForwardRef ¶Một lớp được sử dụng để biểu diễn kiểu gõ bên trong của các tham chiếu chuyển tiếp chuỗi. Ví dụ:
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
149 được chuyển đổi ngầm thành lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
150. Lớp này không nên được khởi tạo bởi người dùng, nhưng có thể được sử dụng bởi các công cụ hướng nộiGhi chú
Các loại chung PEP 585 chẳng hạn như
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
151 sẽ không được chuyển đổi hoàn toàn thành lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
152 và do đó sẽ không tự động phân giải thành lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
153Mới trong phiên bản 3. 7. 4
Không thay đổi¶
đang gõ. TYPE_CHECKING ¶Một hằng số đặc biệt được giả định là
John
12
099 bởi trình kiểm tra loại tĩnh của bên thứ 3. Đó là John
12
834 trong thời gian chạy. Cách sử dụng
024Chú thích loại đầu tiên phải được đặt trong dấu ngoặc kép, làm cho nó trở thành "tham chiếu chuyển tiếp", để ẩn tham chiếu
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
156 khỏi thời gian chạy trình thông dịch. Loại chú thích cho các biến cục bộ không được đánh giá, vì vậy chú thích thứ hai không cần phải được đặt trong dấu ngoặc képGhi chú
Nếu sử dụng
lang = 'Python'
nums = [1,2,3,4]
nums_dict = {'one':1,'two':2,'three':3}
print[type[nums]]
print[type[lang]]
print[type[nums_dict]]
157, các chú thích sẽ không được đánh giá tại thời điểm định nghĩa hàm. Thay vào đó, chúng được lưu trữ dưới dạng chuỗi trong John
12
813. Điều này làm cho việc sử dụng dấu ngoặc kép xung quanh chú thích là không cần thiết [xem PEP 563]Mới trong phiên bản 3. 5. 2
Dòng thời gian ngừng sử dụng các tính năng chính¶
Một số tính năng trong
025 không được dùng nữa và có thể bị xóa trong phiên bản Python trong tương lai. Bảng sau đây tóm tắt các loại bỏ chính để thuận tiện cho bạn. Điều này có thể thay đổi và không phải tất cả các phản đối đều được liệt kê