Python 3.6 sắp được phát hành. PEP 494 - Lịch phát hành Python 3.6 đề cập đến cuối tháng 12, vì vậy tôi đã xem qua Có gì mới trong Python 3.6 để thấy họ đề cập đến các chú thích biến :
PEP 484 đã giới thiệu tiêu chuẩn cho các chú thích kiểu của các tham số hàm, hay còn gọi là gợi ý kiểu. PEP này bổ sung cú pháp cho Python để chú thích các loại biến bao gồm biến lớp và biến phiên bản:
primes: List[int] = [] captain: str # Note: no initial value! class Starship: stats: Dict[str, int] = {}
Cũng như đối với chú thích hàm, trình thông dịch Python không đính kèm bất kỳ ý nghĩa cụ thể nào cho chú thích biến và chỉ lưu trữ chúng trong một thuộc tính đặc biệt
__annotations__
của một lớp hoặc mô-đun. Trái ngược với khai báo biến trong các ngôn ngữ được nhập tĩnh, mục tiêu của cú pháp chú thích là cung cấp một cách dễ dàng để chỉ định siêu dữ liệu kiểu có cấu trúc cho các công cụ và thư viện của bên thứ ba thông qua cây cú pháp trừu tượng và__annotations__
thuộc tính.
Vì vậy, từ những gì tôi đọc, chúng là một phần của gợi ý kiểu đến từ Python 3.5, được mô tả trong Gợi ý kiểu là gì trong Python 3.5 .
Tôi làm theo captain: str
và class Starship
ví dụ, nhưng không chắc chắn về cái cuối cùng: Làm thế nào primes: List[int] = []
giải thích? Có phải nó đang xác định một danh sách trống sẽ chỉ cho phép các số nguyên?
primes: List[int] = []
chỉ là một danh sách trống nhưprimes = []
. Sự khác biệt là bạn đang khẳng định rằngprimes
có nghĩa là để chỉ chứaint
s và các ứng dụng bên thứ 3 có thể gõ kiểm tra chương trình của bạn để xác minh tuyên bố này, nhưng khi bạn chạy mã trong bất kỳ thông dịch viên python đó chỉ giống như viếtprimes = []
, và do đó làmprimes: List[int] = []; primes.append("string")
vẫn là có hiệu lực.