Con trỏ có phải là một phần của Python không?

Con trỏ là biến đặc biệt dùng để lưu địa chỉ của biến khác. Nó thường được sử dụng trong các ngôn ngữ lập trình như C và C++. Đây là những thứ rất hữu ích nhưng khá phức tạp. Chúng được thể hiện bằng dấu hoa thị '*'

Cú pháp khai báo con trỏ trong C

datatype *a1
For Example - int *a1;
		float *b1

Cú pháp gán địa chỉ của một biến cho một con trỏ là

datatype a1, *a2;
a2=&a1;
For Example – int a1, *a2;
		  a2=&a1;


Có bốn loại con trỏ trong C và C++

  1. Con trỏ rỗng
  2. Con trỏ trống
  3. Con trỏ lơ lửng
  4. con trỏ hoang dã

Con trỏ trong Python

Python không hỗ trợ con trỏ

Giữ cho python thân thiện với người dùng là ý tưởng chính đằng sau sự phát triển của nó. Python đã cung cấp một số thư viện dựng sẵn chỉ để giảm bớt công việc cho người dùng. Việc thêm con trỏ vào python sẽ làm tăng thêm sự phức tạp, điều này sẽ đi ngược lại ý tưởng phát triển python. Do đó, con trỏ không được hỗ trợ trong python

Mặc dù python không hỗ trợ con trỏ một cách rõ ràng, nhưng người dùng vẫn có thể nhận được lợi ích của con trỏ trong python. Có nhiều cách khác nhau để đặt con trỏ trong python

Chúng ta sẽ thấy hai trong số họ ở đây

  1. Sử dụng các loại có thể thay đổi làm con trỏ
  2. Sử dụng các đối tượng tùy chỉnh Python

Bằng cách sử dụng các loại có thể thay đổi làm con trỏ

void add_one[int *a] {
    *a += 1;
}

Trong đoạn mã trên của ngôn ngữ C, mã nhận một con trỏ tới một số nguyên[*a] và sau đó tăng giá trị lên 1

Đoạn mã dưới đây hiển thị hàm chính để thực hiện thao tác hàm add_one trên một số nguyên

Giải trình. Trong đoạn mã trên, giá trị = 7654 đã được gán cho y và giá trị đó được in trước. Hơn nữa, giá trị này được tăng thêm một và giá trị đã sửa đổi được in

đầu ra

Giải trình. Đầu tiên y chứa một giá trị chưa sửa đổi và y thứ hai chứa giá trị đã sửa đổi

Bây giờ, hãy cố gắng đạt được điều tương tự trong python

Giải trình. Trong đoạn mã trên, một danh sách có thể thay đổi đã được sử dụng để thực hiện gia số

Trong trường hợp này, hàm add_one[x] truy cập vào giá trị chưa sửa đổi i. e. , 2337 và tăng giá trị của nó lên một. Cuối cùng, chúng tôi nhận được một giá trị sửa đổi cuối cùng

Vì vậy, chúng tôi đã đạt được nhiệm vụ mong muốn của mình mà không cần sử dụng con trỏ, như trong C

Có thể sửa đổi do sử dụng danh sách, thuộc loại dữ liệu có thể thay đổi

Hình này cho thấy đầu ra của mã python ở trên

Giải trình. Ở đây, dòng đầu tiên chứa giá trị chưa sửa đổi và dòng thứ hai chứa giá trị đã sửa đổi

Giải thích - Trong ví dụ trên, chúng tôi đã sử dụng bộ đếm có tên từ điển, bộ đếm này lưu giữ bản ghi về tổng số lệnh gọi hàm. Khi hàm có tên foo[] được gọi, giá trị bộ đếm tăng lên 2 vì từ điển là loại dữ liệu có thể thay đổi

Giải trình. nó hiển thị đầu ra của mã python được viết ở trên

Bằng cách sử dụng các đối tượng tùy chỉnh Python

Tùy chọn dictionary là một cách tuyệt vời để cạnh tranh với các con trỏ trong Python, nhưng đôi khi việc nhớ tên khóa được sử dụng trở nên đơn điệu. Nếu từ điển đã được sử dụng trong các phần khác nhau của ứng dụng, điều đó thậm chí còn khó khăn hơn. Chúng tôi có thể sử dụng một lớp tùy chỉnh thay vì từ điển để khắc phục vấn đề này

Giải trình. Đoạn mã trên thể hiện một lớp Metrics vẫn sử dụng một dictionary để giữ dữ liệu thực, nằm trong biến thành viên _metrics. Điều này sẽ cung cấp khả năng thay đổi cần thiết cho người dùng. Bây giờ nó là cần thiết để có thể truy cập các giá trị này

Nó có thể được thực hiện thông qua các thuộc tính

Giải trình. Mã ở đây đang sử dụng @property. Trang trí @property ở đây cho phép truy cập các chức năng - adding và 

datatype a1, *a2;
a2=&a1;
For Example – int a1, *a2;
		  a2=&a1;


0

Bây giờ, chúng ta sẽ tạo một đối tượng là thể hiện của lớp con trỏ được định nghĩa ở trên

Giải trình. Đoạn mã được viết ở trên cho thấy việc tạo một đối tượng của con trỏ

Ở đây cũng vậy, các giá trị đang được tăng lên

Hai chức năng mới đã được sử dụng

  1. thêm []
  2. núi_pics[]

Hai chức năng này có khả năng sửa đổi các giá trị trong chỉ số

datatype a1, *a2;
a2=&a1;
For Example – int a1, *a2;
		  a2=&a1;


0. Bây giờ chúng tôi đã tạo một lớp có thể được sửa đổi giống như các con trỏ được sửa đổi

Tại đây, người ta có thể truy cập cả hai chức năng này là add[] và mountain_pic[]  để mô phỏng con trỏ trong Python

Chủ Đề