Các tính năng động của Python là gì?

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

Chúng tôi cung cấp nhiều lựa chọn các khóa học từ các trường đại học và tổ chức văn hóa hàng đầu từ khắp nơi trên thế giới. Chúng được cung cấp từng bước một và có thể truy cập được trên thiết bị di động, máy tính bảng và máy tính để bàn, vì vậy bạn có thể phù hợp với việc học xung quanh cuộc sống của mình

Chúng tôi tin rằng việc học phải là một trải nghiệm xã hội, thú vị, vì vậy các khóa học của chúng tôi mang đến cơ hội thảo luận những gì bạn đang học với những người khác trong quá trình học, giúp bạn có những khám phá mới mẻ và hình thành ý tưởng mới.
Bạn có thể mở ra những cơ hội mới với quyền truy cập không giới hạn vào hàng trăm khóa học ngắn hạn trực tuyến trong một năm bằng cách đăng ký gói Không giới hạn của chúng tôi. Xây dựng kiến ​​thức của bạn với các trường đại học và tổ chức hàng đầu.

Tìm hiểu thêm về cách FutureLearn đang thay đổi cách tiếp cận giáo dục

Trong bài học này, bạn sẽ tìm hiểu về hệ thống kiểu, so sánh kiểu gõ động và kiểu gõ tĩnh. Tất cả các ngôn ngữ lập trình bao gồm một số loại hệ thống loại chính thức hóa các loại đối tượng mà nó có thể làm việc và cách các loại đó được xử lý

Nhập động

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 và kiểu của một biến được phép thay đổi trong suốt thời gian tồn tại của nó. Dưới đây là một vài ví dụ chứng minh những ý tưởng đó

>>>

>>> if False:
..     1 + "two"  # This line never runs, so no TypeError is raised
.. else:
..     1 + 2
...
3
>>> 1 + "two"  # Now this is type checked
TypeError: unsupported operand type[s] for +: 'int' and 'str'

Trong ví dụ đầu tiên, nhánh

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

7 không bao giờ chạy, vì vậy nó không bao giờ được kiểm tra loại. Ví dụ thứ hai cho thấy rằng khi đánh giá
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

7, nó sẽ tăng giá trị
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

9 vì bạn không thể cộng một số nguyên và một chuỗi trong Python

Trong ví dụ tiếp theo này, bạn xem liệu các biến có thể thay đổi loại không

>>>

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

0 trả về loại đối tượng

Nhập tĩnh

Ngược lại với gõ động là gõ tĩnh. Kiểm tra loại tĩnh được thực hiện mà không cần chạy chương trình. Trong hầu hết các ngôn ngữ được nhập tĩnh, chẳng hạn như C và Java, điều này được thực hiện khi chương trình của bạn được biên dịch. Loại biến không được phép thay đổi trong suốt thời gian tồn tại của nó

Trong ví dụ về

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

0 trong Java này, hãy xem phần giữa, trong đó
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

1 được định nghĩa tĩnh là một loại của
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

2 và sau đó được gán giá trị
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

3

public class HelloTypes {

    public static void main[String[] args] {

        String thing;
        thing = "Hello World";

        System.out.println[thing];
    }
}

Đây không phải là khóa học về Java, vì vậy đừng lo lắng về các chi tiết cụ thể về cách tạo mã Java. Mục đích của ví dụ này là để cho bạn thấy rằng có nhiều bước bổ sung trong hầu hết các ngôn ngữ được nhập tĩnh

Trong ví dụ tiếp theo này, bạn sẽ sử dụng lệnh

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

4 để biên dịch chương trình. Thao tác này tạo một tệp mới có cùng tên nhưng có phần mở rộng khác là
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

5 thay vì
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

6. Đó là tệp có thể chạy bằng lệnh
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

7

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

1

Nếu bạn cố gắng gán lại

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

8 cho một giá trị thuộc loại khác, ban đầu bạn sẽ không gặp lỗi. Chỉ khi mã được biên dịch, bạn mới thấy lỗi

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

3

Dòng

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

9 đang cố thay đổi kiểu của
>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

8 từ chuỗi thành kiểu int. Nếu bạn biên dịch mã này, bạn sẽ thấy lỗi

>>> thing = "Hello"
>>> type[thing]


>>> thing = 28.1
>>> type[thing]

6

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

Tính năng liên kết kiểu động của Python là gì?

Ràng buộc động hoãn việc xác định phương thức thực tế để gọi trên một đối tượng cho đến thời điểm thực hiện chương trình .

Tại sao Python là kiểu động?

Các ngôn ngữ khác như C, C++, Java, v.v. , có sự khai báo chặt chẽ các biến trước khi gán giá trị cho chúng. Python không có vấn đề gì ngay cả khi chúng ta không khai báo kiểu biến. Nó cho biết loại biến trong thời gian chạy chương trình . Vì vậy, Python là một ngôn ngữ được gõ động.

Độ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

Chủ Đề