0
0
Lập trình
TT

Giới thiệu về Phương thức Dunder trong Python

Đăng vào 6 ngày trước

• 3 phút đọc

Giới thiệu về Phương thức Dunder trong Python

Phương thức Dunder, hay còn gọi là phương thức ma thuật, là một phần quan trọng trong ngôn ngữ lập trình Python. Bài viết này sẽ cung cấp cái nhìn sâu sắc về phương thức Dunder, tầm quan trọng và cách áp dụng chúng trong lập trình.

Nội dung chính

Phương thức Dunder là gì?

Phương thức Dunder trong Python là những phương thức đặc biệt bắt đầu và kết thúc bằng hai dấu gạch dưới (__). Chúng cho phép bạn định nghĩa hành vi của đối tượng trong các thao tác tích hợp sẵn, chẳng hạn như phép cộng, phép trừ, biểu diễn chuỗi và nhiều hơn nữa.

Một số phương thức Dunder thông dụng bao gồm:

  • __init__(self, ...): Được gọi khi một đối tượng được tạo ra.
  • __str__(self): Được gọi bởi hàm tích hợp str() và lệnh print để biểu diễn đối tượng dưới dạng chuỗi.
  • __repr__(self): Được gọi bởi hàm tích hợp repr() để biểu diễn đối tượng cho việc gỡ lỗi.
  • __add__(self, other): Được gọi khi sử dụng toán tử +.
  • __len__(self): Được gọi bởi hàm tích hợp len() để trả về độ dài của đối tượng.
  • __getitem__(self, key): Được gọi để truy xuất một mục từ một tập hợp sử dụng cú pháp chỉ mục.
  • __setitem__(self, key, value): Được gọi để thiết lập một mục trong một tập hợp sử dụng cú pháp chỉ mục.

Tại sao phương thức Dunder lại quan trọng?

Trong bối cảnh IRIS, phương thức Dunder cho phép bạn tận dụng các tính năng của Python trong môi trường ObjectScript. Mặc dù ObjectScript không có cú pháp giống như Python, nhưng bạn có thể đạt được hành vi tương tự bằng cách sử dụng các phương thức Dunder.

Ví dụ thực tế

Giả sử bạn đã nhập một mô-đun Python, trong đó có một hàm trả về một danh sách Python, và bạn muốn sử dụng nó trong ObjectScript. Bạn cần sử dụng phương thức __getitem__ để truy cập các mục trong danh sách này.

python Copy
# src/python/article/dunder_example.py
def get_list():
    return [1, 2, 3, 4, 5]

Tiếp theo, trong ObjectScript, bạn có thể viết như sau:

objectscript Copy
Class Article.DunderExample Extends %RegisteredObject
{

ClassMethod Run()
{
    Set sys = ##class(%SYS.Python).Import("sys")
    do sys.path.append("/irisdev/app/src/python/article")
    set dunderExample = ##class(%SYS.Python).Import("dunder_example")
    set myList = dunderExample."get_list"()
    for i=0:1:myList."__len__"()-1 {
        write myList."__getitem__"(i), !
    }
}

}

Bây giờ bạn có thể chạy mã ObjectScript:

bash Copy
iris session iris -U IRISAPP '##class(Article.DunderExample).Run()'

Kết quả sẽ là:

Copy
1
2
3
4
5

Điều này minh họa cách sử dụng các phương thức Dunder để tương tác với các đối tượng Python trong môi trường IRIS, cho phép bạn tận dụng khả năng của Python trong khi làm việc với ObjectScript.

Mẹo và lưu ý

Một cách sử dụng tốt cho phương thức Dunder là thêm một khối if __name__ == "__main__": vào cuối đoạn mã Python của bạn để ngăn mã được thực thi khi mô-đun được nhập. Khối này cho phép bạn định nghĩa mã chỉ nên chạy khi tập tin được thực thi trực tiếp, không phải khi nó được nhập.

Ví dụ:

python Copy
# src/python/article/dunder_example.py
def get_list():
    return [1, 2, 3, 4, 5]

if __name__ == "__main__":
    print(get_list())

Câu hỏi thường gặp

Phương thức Dunder có thể được sử dụng ở đâu?

Phương thức Dunder được sử dụng rộng rãi trong lập trình hướng đối tượng và cho phép bạn tùy chỉnh hành vi của đối tượng trong các tình huống khác nhau.

Có bao nhiêu phương thức Dunder trong Python?

Có rất nhiều phương thức Dunder trong Python, mỗi phương thức phục vụ một mục đích cụ thể. Bạn có thể tham khảo tài liệu Python để tìm hiểu thêm.

Làm thế nào để tạo phương thức Dunder của riêng mình?

Bạn có thể tạo phương thức Dunder bằng cách định nghĩa một phương thức trong lớp của bạn với tên bắt đầu và kết thúc bằng hai dấu gạch dưới.

Kết luận

Phương thức Dunder là một công cụ mạnh mẽ trong Python, cho phép bạn tùy chỉnh hành vi của đối tượng. Bằng cách hiểu và áp dụng chúng, bạn có thể nâng cao khả năng lập trình của mình trong Python và IRIS. Hãy bắt đầu khám phá và áp dụng các phương thức Dunder trong dự án của bạn ngay hôm nay!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào