Cái gì được gọi là gõ động trong python?

Ngôn ngữ lập trình có thể được phân loại thành hai loại Dynamic typing và static typing. Python là một ngôn ngữ được gõ động. Điều này có nghĩa là trình thông dịch Python chỉ kiểm tra kiểu khi mã chạy. Tuy nhiên, trong ngôn ngữ kiểu tĩnh, việc kiểm tra các biến/đối tượng

được thực hiện tại thời điểm biên dịch. Vì vậy, việc xử lý hoặc sửa lỗi trở nên dễ dàng nếu bạn có thể tìm thấy chúng trước khi chạy chương trình

Khi bạn viết chương trình bằng ngôn ngữ gõ động, không bắt buộc phải xác định loại biến. Nó có nguồn gốc dựa trên các giá trị bạn gán cho chúng. Nhưng việc duy trì mã ngày càng khó hơn vì nó tạo ra sự nhầm lẫn và mất nhiều thời gian hơn để hiểu mã

Một số ví dụ về ngôn ngữ gõ động là

  • con trăn
  • PHP
  • JavaScript

Một số ví dụ về ngôn ngữ gõ tĩnh là

  • Java
  • C
  • C++

Ví dụ

Hãy tạo một biến trong python và xem nó có thể thay đổi kiểu như thế nào

con trăn

Java. Bạn có thể thấy trong trường hợp java bạn không thể gán một loại giá trị khác với loại biến

Python sẽ luôn là một ngôn ngữ được gõ động. Tuy nhiên, PEP 484 đã giới thiệu các gợi ý về kiểu, cho phép thực hiện kiểm tra kiểu tĩnh của mã Python

Tuy nhiên, không giống như ngôn ngữ kiểu tĩnh, chỉ xác định gợi ý kiểu trong mã python không thực thi kiểu. Chúng tôi có một số công cụ để thực hiện các kiểm tra này như mypy

Trong ví dụ sau, chúng ta có hai hàm, một hàm không có gợi ý kiểu và một hàm có gợi ý kiểu. Khi chúng tôi chạy chương trình, nó chỉ hoạt động và không phàn nàn vì chúng tôi đang chuyển các giá trị chuỗi thay vì các kiểu int được xác định cho hàm thứ hai

Nhưng hãy nghĩ xem nếu hàm hello_world_with_type_hint thực hiện phép chia cho tham số được truyền, Trong trường hợp đó, nó sẽ thông qua ngoại lệ

Sẽ thật tuyệt nếu chúng ta có một số kiểu kiểm tra trước khi thực thi mã để chúng ta có thể sửa nó phải không?

Vì vậy, ở đây đến mypy. Nó sẽ giúp chúng tôi thực hiện kiểm tra loại nếu chúng tôi có gợi ý loại được xác định trong mã

Bạn có thể cài đặt mypy bằng pip

Bây giờ hãy thực hiện kiểm tra kiểu với mypy

Bạn có thể thấy rằng nó hiển thị lỗi cho kiểu trả về và kiểu đối số

Hãy thay đổi kiểu trả về thành float theo lời khuyên của mypy

Bây giờ hãy gọi hàm với kiểu đối số hợp lệ [ int]. Bạn có thể thấy thông báo thành công ngay bây giờ

Bạn đã thấy cách mypy giúp chúng tôi tìm ra vấn đề trước khi thực sự chạy chương trình. Nó cũng đề xuất các tùy chọn chính xác

Nhưng chúng tôi không cần chạy mypy cho từng tệp mã của mình. Tuy nhiên chúng ta có thể cấu hình mypy với pre-commit để nó thực thi bất cứ khi nào bạn muốn commit code

Phần kết luận

Chúng tôi đã thấy một ví dụ về một trong những lợi thế của việc thêm các loại vào mã của bạn. gõ gợi ý giúp bắt lỗi nhất định. Nó cũng giúp ghi lại mã của bạn

Python vừa là ngôn ngữ được gõ mạnh vừa là ngôn ngữ được gõ động

  • Báo cáo bài viết này

Meghana Bhamare

Meghana Bhamare

Kỹ sư phần mềm cao cấp tại Abzooba

Xuất bản ngày 4 tháng 3 năm 2022

+ Theo dõi

Nhập mạnh có nghĩa là các biến có một loại và loại đó quan trọng khi thực hiện các thao tác trên một biến

Nhập động có nghĩa là loại biến chỉ được xác định trong thời gian chạy

mặt khác, các kiểu trong Python được xác định trong thời gian chạy thay vì thời gian biên dịch và do đó các lập trình viên không bắt buộc phải khai báo các biến trước khi sử dụng chúng trong mã. Về mặt kỹ thuật, một biến được tạo khi nó được gán giá trị lần đầu tiên trong mã

Điều này có nghĩa là trước tiên một biến phải được gán một giá trị trước khi nó được tham chiếu trong mã nếu không sẽ báo lỗi. Và như đã đề cập trước đó, việc gán biến không bao giờ đi kèm với định nghĩa kiểu vì kiểu được lưu trữ với các đối tượng chứ không phải với biến/tên

Mỗi khi một biến được xác định, nó sẽ tự động được thay thế bằng đối tượng trong bộ nhớ mà nó tham chiếu

Mối quan hệ giữa các đối tượng, biến và tham chiếu

Tóm lại, mỗi khi chúng ta gán biến, Python sẽ thực hiện ba bước sau

1. Tạo một đối tượng trong bộ nhớ chứa giá trị

2. Nếu tên biến chưa tồn tại trong không gian tên, hãy tiếp tục và tạo nó

3. Gán tham chiếu đến đối tượng [trong bộ nhớ] cho biến

Biến, là một tên tượng trưng trong một bảng hệ thống chứa các liên kết [i. e. tham chiếu] đến các đối tượng

Nói cách khác, tham chiếu là con trỏ từ biến đến đối tượng. Tuy nhiên, trong Python, các biến không có kiểu

Do đó, có thể gán các đối tượng khác loại cho cùng một tên biến, như hình bên dưới

một = 1

a = 'Xin chào thế giới'

a = Sai

Trong dòng đầu tiên, biến a đang được gán với tham chiếu đến đối tượng số nguyên có giá trị 1. Tương tự như vậy, dòng thứ hai thay đổi tham chiếu của biến a thành một đối tượng khác của kiểu chuỗi trong khi dòng cuối cùng thay đổi tham chiếu để bây giờ a trỏ đến một đối tượng boolean

Khi chúng ta đề cập đến các đối tượng, chúng ta thực sự muốn nói đến một phần bộ nhớ được cấp phát có khả năng biểu thị giá trị mà chúng ta muốn

Giá trị này có thể là một số nguyên, một chuỗi hoặc bất kỳ loại nào khác. Ngoài giá trị, các đối tượng cũng đi kèm với một vài trường tiêu đề

Các trường này bao gồm loại đối tượng cũng như bộ đếm tham chiếu của nó được Trình thu gom rác sử dụng để xác định xem có thể lấy lại bộ nhớ của các đối tượng không sử dụng hay không

Và vì các đối tượng Python có khả năng biết loại của chính chúng, nên các biến không cần phải nhớ đoạn thông tin này

Ví dụ

Một trong những tính năng chính của Python là mọi thứ đều là đối tượng và kiểu chỉ là một thuộc tính của đối tượng

n = 5

dir[n]

Để minh họa, chúng ta có thể gán một số nguyên duy nhất cho một biến và sử dụng dir hàm có sẵn trong Python để tìm ra các thuộc tính của đối tượng. Nếu bạn thực hiện hai dòng sau trong một trình thông dịch tương tác, thì rõ ràng là một số nguyên Python phức tạp hơn nhiều so với chỉ một số

một = 7

b = 6

c = a + b

có một số bước Python cần thực hiện

1. Kiểm tra các loại của cả hai toán hạng

2. Kiểm tra xem cả hai đều hỗ trợ thao tác +

3. Trích xuất hàm thực hiện thao tác + [do các đối tượng quá tải toán tử có thể có định nghĩa tùy chỉnh để bổ sung]

4. Trích xuất các giá trị thực tế của các đối tượng

5. Thực hiện thao tác +

6. Xây dựng một đối tượng số nguyên mới cho kết quả

Do Python được gõ động nên trình thông dịch không thể biết

biết trước loại đối tượng mà người ta đang xử lý và mỗi khi hai biến được thêm vào, người ta cần thực hiện tất cả các bước trên

Câu hỏi phỏng vấn về kiểu động trong python

1. Loại ngôn ngữ nào là python?

trả lời. Python là ngôn ngữ lập trình hướng đối tượng, thông dịch, tương tác. Python là một ngôn ngữ được giải thích, trái ngược với ngôn ngữ được biên dịch, mặc dù sự khác biệt có thể không rõ ràng do sự hiện diện của trình biên dịch mã byte. Điều này có nghĩa là các tệp nguồn có thể được chạy trực tiếp mà không cần tạo một tệp thực thi một cách rõ ràng.

Gõ động và tĩnh trong Python là gì?

Nếu loại của biến được kiểm tra trong thời gian chạy mã thì ngôn ngữ được gọi là ngôn ngữ được nhập động. Nếu loại của biến được kiểm tra tại thời điểm biên dịch mã thì ngôn ngữ được gọi là ngôn ngữ được nhập tĩnh

Lập trình gõ động là gì?

Thuật ngữ gõ động có nghĩa là trình biên dịch hoặc trình thông dịch gán một loại cho tất cả các biến trong thời gian chạy . Loại biến được quyết định dựa trên giá trị của nó. Các chương trình được viết bằng ngôn ngữ kiểu động linh hoạt hơn nhưng sẽ biên dịch ngay cả khi chúng có lỗi.

Ví dụ gõ động là gì?

Trong Dynamic Typing, kiểm tra loại được thực hiện trong thời gian chạy. Ví dụ: Python là ngôn ngữ được nhập động . Điều đó có nghĩa là loại biến được phép thay đổi trong suốt thời gian tồn tại của nó. Các ngôn ngữ được nhập động khác là -Perl, Ruby, PHP, Javascript, v.v.

Chủ Đề