Hướng dẫn do type hints make python faster? - gợi ý về loại có làm cho python nhanh hơn không?

Có thể chú thích chức năng Python và các gợi ý loại [PEP 3107 và PEP 484] có gây ra một số hiệu ứng thời gian chạy không?

Nó có thể làm cho mã nhanh hơn? Hoặc thu nhỏ việc sử dụng bộ nhớ? Hoặc nếu không thì nó sẽ làm cho mã chậm hơn?

vvvvv

19.4K16 Huy hiệu vàng44 Huy hiệu bạc62 Huy hiệu Đồng16 gold badges44 silver badges62 bronze badges

Đã hỏi ngày 17 tháng 1 năm 2017 lúc 8:42Jan 17, 2017 at 8:42

4

Loại gợi ý và chú thích loại cung cấp các thuộc tính [xem typing.get_type_hints] có thể được truyền bởi các công cụ của bên thứ 3 nhưng CPython gốc sẽ không kiểm tra các công cụ này trong thời gian chạy, vì vậy điều này không ảnh hưởng đáng kể đến hiệu suất mã theo cùng một cách mà các bình luận không. Tôi đã thực hiện một số bài kiểm tra với timeit và loại bỏ các gợi ý loại có tác dụng không đáng kể [không thể phân biệt với nhiễu nền] trong thời gian chạy, vì vậy bất kỳ lo ngại nào về hiệu suất chắc chắn sẽ là một trường hợp tối ưu hóa sớm.

Từ PEP 484:

Mặc dù mô -đun gõ được đề xuất sẽ chứa một số khối xây dựng để kiểm tra loại thời gian chạy - đặc biệt là chức năng GET_TYPE_HINTS [] - các gói của bên thứ ba sẽ phải được phát triển để thực hiện chức năng kiểm tra loại thời gian chạy cụ thể, ví dụ như sử dụng các trình trang trí hoặc metaclass. Sử dụng gợi ý loại cho tối ưu hóa hiệu suất được để lại như một bài tập cho người đọc.

LTWORF

7.0376 Huy hiệu vàng30 Huy hiệu bạc42 Huy hiệu Đồng6 gold badges30 silver badges42 bronze badges

Đã trả lời ngày 17 tháng 1 năm 2017 lúc 9:05Jan 17, 2017 at 9:05

Chris_RandsChris_RandsChris_Rands

36.7K13 Huy hiệu vàng79 Huy hiệu bạc111 Huy hiệu đồng13 gold badges79 silver badges111 bronze badges

3

Theo các mục tiêu không phải là các mục tiêu trong tài liệu PEP 484, kiểm tra loại và tối ưu hóa hiệu suất phụ thuộc vào các công cụ của bên thứ ba hoặc để lại cho người lập trình viên.

Vì vậy, tóm lại: Không, chúng sẽ không gây ra bất kỳ hiệu ứng thời gian chạy nào, trừ khi bạn sử dụng chúng một cách rõ ràng.

Xeli

2.2421 Huy hiệu vàng19 Huy hiệu bạc24 Huy hiệu đồng1 gold badge19 silver badges24 bronze badges

Đã trả lời ngày 17 tháng 1 năm 2017 lúc 8:53Jan 17, 2017 at 8:53

RobrobRob

3,2431 Huy hiệu vàng18 Huy hiệu bạc27 Huy hiệu đồng1 gold badge18 silver badges27 bronze badges

2

Loại gợi ý là các chú thích chỉ định loại giá trị thời gian chạy trong mã Python của bạn. Cái nhìn này được gõ tĩnh, phải không?

Điều này đã được chỉ định trong PEP 484 và giới thiệu Python 3.5.

Nó trực quan khi nghĩ rằng sẽ có một số cải thiện hiệu suất [tốc độ] trong thời gian chạy vì các ngôn ngữ được đánh máy tĩnh không cần phải kiểm tra kiểu dữ liệu trong thời gian chạy. Đúng? Hãy cùng kiểm tra nào

Chúng tôi sẽ sử dụng loạt Fibonacci cổ điển để kiểm tra xem loại gợi ý loại có cải thiện hiệu suất hay không.

Fibonacci không có gợi ý loại

Sê -ri Fibonacci không có gợi ý loại.

Hàm Fibonacci sẽ được gọi là 10.000 lần và hoạt động nối tiếp sẽ được gọi là 10.000 * 100 [thuật ngữ thứ n].

Hồ sơ thời gian chạy

Chương trình đã hoàn thành việc thực hiện trong khoảng 0,705 giây.

Fibonacci với loại gợi ý

Sử dụng cùng một thuật toán nhưng với gợi ý loại.

Chương trình đã hoàn thành việc thực hiện trong khoảng 0,708 giây.

Thời gian thực hiện rất gần và sự khác biệt có thể được gây ra bởi một số trạng thái CPU.

Cũng cần nhấn mạnh rằng Python sẽ vẫn là một ngôn ngữ được đánh máy động và các tác giả không muốn làm cho các gợi ý loại bắt buộc, ngay cả theo quy ước.

Tại sao phải loại gợi ý sau đó?

Triết lý cốt lõi Python như được tóm tắt trong Zen of Python bao gồm:

  • Đẹp tốt hơn xấu.
  • Rõ ràng là tốt hơn tiềm ẩn.
  • Đơn giản là tốt hơn phức tạp.
  • Phức tạp là tốt hơn phức tạp.
  • Tính dễ đọc.

Loại gợi ý trong Python sẽ cung cấp nhiều khả năng dễ đọc hơn cho cả công cụ thống kê và người.

PEP [484] này nhằm mục đích cung cấp một cú pháp tiêu chuẩn cho các chú thích loại, mở mã Python để phân tích tĩnh và tái cấu trúc dễ dàng hơn, kiểm tra loại thời gian chạy tiềm năng và [có lẽ, trong một số bối cảnh] tạo mã sử dụng thông tin loại.

Tính dễ đọc

Bạn có nên sử dụng gợi ý loại trong Python?

Trong bài viết xuất sắc của mình, trạng thái của các gợi ý loại trong Python, Bernátbor đề nghị rằng nên sử dụng gợi ý loại của loại bất cứ khi nào các bài kiểm tra đơn vị đáng để viết. Thật vậy, gõ gợi ý đóng một vai trò tương tự như các bài kiểm tra trong mã của bạn: chúng giúp bạn như một nhà phát triển viết mã tốt hơn.type hints should be used whenever unit tests are worth writing.” Indeed, type hints play a similar role as tests in your code: they help you as a developer write better code.

Việc gõ có tăng tốc độ python không?

Vì vậy, tóm lại: Không, chúng sẽ không gây ra bất kỳ hiệu ứng thời gian chạy nào, trừ khi bạn sử dụng chúng một cách rõ ràng.no, they will not cause any run-time effects, unless you explicitly make use of them.

Các gợi ý loại có được thi hành trong Python không?

Gợi ý loại được thực hiện bằng cách sử dụng các chú thích Python [được giới thiệu từ PEP 3107].Chúng được sử dụng để thêm các loại vào các biến, tham số, đối số hàm cũng như các giá trị trả về, thuộc tính lớp và phương thức của chúng.Thêm gợi ý loại không có hiệu ứng thời gian chạy: Đây chỉ là những gợi ý và không được thực thi.these are only hints and are not enforced on their own.

Python 3.6 có hỗ trợ loại gợi ý không?

Mô -đun này hỗ trợ các gợi ý loại theo quy định của PEP 484 và PEP 526. Hỗ trợ cơ bản nhất bao gồm các loại, Union, Tuple, Callable, Typevar và Generic.Để biết thông số kỹ thuật đầy đủ, vui lòng xem PEP 484.. The most fundamental support consists of the types Any , Union , Tuple , Callable , TypeVar , and Generic . For full specification please see PEP 484.

Bài Viết Liên Quan

Chủ Đề