Hàm dir() trả về danh sách các thuộc tính và phương thức của bất kỳ đối tượng nào như hàm, module, chuỗi, danh sách, từ điển, v.v. Bài viết này minh họa cách sử dụng dir() theo nhiều cách khác nhau.
Chỉ dùng dir()
Khi in giá trị của dir() mà không import module nào, ta nhận được danh sách phương thức và thuộc tính có sẵn trong thư viện chuẩn khi chương trình Python khởi tạo.
Ví dụ
print(dir())
Kết quả
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
Sau khi import module bổ sung
Khi import thêm module và tạo biến, chúng được thêm vào môi trường hiện tại. Các phương thức và thuộc tính của chúng cũng xuất hiện trong dir().
Ví dụ
import math x = math.ceil(10.03) print(dir())
Kết quả
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'math', 'x']
dir() cho module cụ thể
Để xem phương thức và thuộc tính của một module cụ thể, truyền module đó làm tham số cho dir(). Ví dụ dưới đây liệt kê các phương thức trong module math.
Ví dụ
import math print(dir(math))
Kết quả
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', ..., 'nan', ..., 'trunc']
dir() cho lớp tự định nghĩa
Ta cũng có thể áp dụng dir() cho lớp do người dùng tạo (không phải built-in) để lấy danh sách thuộc tính thông qua phương thức __dir__.
Ví dụ
class moviecount:
def __dir__(self):
return ['Red Man', 'Hello Boy', 'Happy Monday']
movie_dtls = moviecount()
print(dir(movie_dtls))
Kết quả
['Happy Monday', 'Hello Boy', 'Red Man']