Ví dụ về gõ động trong python

Trong python, các biến là các vị trí bộ nhớ dành riêng để lưu trữ các giá trị. Python là ngôn ngữ kiểu động, không bắt buộc phải nói đến kiểu biến khi khai báo. Nó thực hiện kiểm tra kiểu trong thời gian chạy. Perl, Ruby, PHP, JavaScript là một số ví dụ về ngôn ngữ lập trình kiểu động

Kiểm tra tĩnh trong thời gian chạy

Ví dụ,

// Trăn

msg=”Xin chào thế giới”

in [tin nhắn]

Ở đây, biến msg chứa giá trị chuỗi “Xin chào thế giới”. Không bắt buộc phải đề cập đến loại thông báo dưới dạng chuỗi sẽ được quyết định khi chạy

Nếu chúng ta muốn biết loại biến, mã sẽ là

// Trăn

msg=”Xin chào thế giới”

in [tin nhắn]

print[type[msg]] // Kiểm tra kiểu

đầu ra

Chào thế giới

< lớp 'str' >

Một tính năng nữa của ngôn ngữ kiểu động là việc gán lại biến với các kiểu dữ liệu khác rất đơn giản.

Ví dụ,

// Trăn

msg=”Xin chào thế giới” //Chuỗi

in [tin nhắn]

in [loại [tin nhắn]]

msg=5 //Số nguyên

in [tin nhắn]

in [loại [tin nhắn]]

tin nhắn = 25. 25 // Nổi

in [tin nhắn]

in [loại [tin nhắn]]

đầu ra

Chào thế giới

< lớp 'str' >

5

25. 25

< lớp 'phao'>

Ban đầu, giá trị của biến msg là một chuỗi. Sau đó, nó được gán với một số nguyên. Cuối cùng, nó là một số dấu phẩy động. Cùng một biến msg được sử dụng để gán nhiều kiểu dữ liệu. Nó sẽ thực thi mà không có lỗi

Trong các ngôn ngữ lập trình kiểu tĩnh bắt buộc phải đề cập đến kiểu của biến khi khai báo. Nó thực hiện kiểm tra kiểu tại thời điểm biên dịch. Java, C, C++ là một số ví dụ về ngôn ngữ được gõ tĩnh

Kiểm tra tĩnh trong thời gian biên dịch

Ví dụ,

//Java

lớp học mẫu

{

public static void main[String[] args]

{

Tin nhắn chuỗi;

msg = “Xin chào thế giới”;

Hệ thống. ngoài. println[tin nhắn];

}

}

đầu ra

$ javac Mẫu. java

$ java Mẫu. lớp

Chào thế giới

Java là một ngôn ngữ kiểu tĩnh. Ở đây, biến msg đã được khai báo là chuỗi và sau đó gán giá trị “Hello World” cho nó. Không có lỗi trong quá trình biên dịch và nó sẽ hiển thị đầu ra tương ứng

Nhưng trong các ngôn ngữ kiểu tĩnh, nó không thể gán lại một biến với các kiểu dữ liệu khác trong cùng một mã nguồn. Nó sẽ hiển thị lỗi trong thời gian biên dịch

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++

Thí 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. 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

Sự 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

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.

Có gõ động trong Python không?

Python là ngôn ngữ được nhập động . 00. 12 Trình thông dịch Python chỉ kiểm tra kiểu khi mã chạy. Khi bạn thực thi một dòng mã, như bạn sẽ thấy trong ví dụ tiếp theo, đó là lúc việc kiểm tra kiểu diễn ra. 00. 23 Ngoài ra, loại biến được phép thay đổi trong suốt thời gian tồn tại của nó.

Cho ví dụ về các ngôn ngữ được gõ tĩnh và gõ động là gì?

Các ngôn ngữ lập trình được gõ tĩnh thực hiện kiểm tra kiểu tại thời điểm biên dịch. ví dụ. Java, C, C++. Các ngôn ngữ lập trình được nhập động thực hiện kiểm tra kiểu trong thời gian chạy. ví dụ. Perl, Ruby, Python, PHP, JavaScript

Kiểu truyền động trong Python là gì?

Python là ngôn ngữ được gõ động. Trong Python, các biến không liên kết với bất kỳ loại cụ thể nào . Sử dụng hàm type[] để lấy loại đối tượng mà biến tham chiếu.

Chủ Đề