pyclbr --- Hỗ trợ trình duyệt mô-đun Python

Source code: Lib/pyclbr.py


Mô-đun pyclbr cung cấp thông tin hạn chế về các hàm, lớp và phương thức được xác định trong mô-đun được mã hóa Python. Thông tin đủ để triển khai trình duyệt mô-đun. Thông tin được trích xuất từ ​​mã nguồn Python thay vì nhập mô-đun, vì vậy mô-đun này an toàn khi sử dụng với mã không đáng tin cậy. Hạn chế này khiến không thể sử dụng mô-đun này với các mô-đun không được triển khai bằng Python, bao gồm tất cả các mô-đun mở rộng tiêu chuẩn và tùy chọn.

pyclbr.readmodule(module, path=None)

Trả về tên lớp cấp mô-đun ánh xạ từ điển tới bộ mô tả lớp. Nếu có thể, hãy đưa vào bộ mô tả cho các lớp cơ sở đã nhập. Tham số module là một chuỗi có tên mô-đun cần đọc; nó có thể là tên của một mô-đun trong một gói. Nếu được cung cấp, path là một chuỗi các đường dẫn thư mục được thêm vào trước sys.path, được sử dụng để định vị mã nguồn mô-đun.

Chức năng này là giao diện gốc và chỉ được giữ lại để tương thích ngược. Nó trả về một phiên bản đã lọc sau đây.

pyclbr.readmodule_ex(module, path=None)

Trả về cây dựa trên từ điển chứa bộ mô tả hàm hoặc lớp cho từng hàm và lớp được xác định trong mô-đun bằng câu lệnh def hoặc class. Từ điển được trả về ánh xạ hàm cấp mô-đun và tên lớp tới bộ mô tả của chúng. Các đối tượng lồng nhau được nhập vào từ điển con của cha mẹ chúng. Giống như readmodule, module đặt tên cho mô-đun cần đọc và path được thêm vào trước sys.path. Nếu mô-đun đang được đọc là một gói thì từ điển được trả về có khóa '__path__' có giá trị là danh sách chứa đường dẫn tìm kiếm gói.

Added in version 3.7: Bộ mô tả cho các định nghĩa lồng nhau. Chúng được truy cập thông qua thuộc tính trẻ em mới. Mỗi cái có một thuộc tính cha mới.

Các bộ mô tả được các hàm này trả về là các thể hiện của các lớp Hàm và Lớp. Người dùng không cần phải tạo các phiên bản của các lớp này.

Đối tượng chức năng

class pyclbr.Function

Các cá thể lớp Function mô tả các hàm được xác định bởi câu lệnh def. Chúng có các thuộc tính sau:

file

Tên của tệp trong đó hàm được xác định.

module

Tên của module xác định chức năng được mô tả.

name

Tên của chức năng.

lineno

Số dòng trong tệp nơi định nghĩa bắt đầu.

parent

Đối với các hàm cấp cao nhất, None. Đối với các hàm lồng nhau, parent.

Added in version 3.7.

children

Tên ánh xạ dictionary tới các bộ mô tả cho các hàm và lớp lồng nhau.

Added in version 3.7.

is_async

True cho các hàm được xác định bằng tiền tố async, False nếu không.

Added in version 3.10.

Đối tượng lớp

class pyclbr.Class

Các cá thể lớp Class mô tả các lớp được xác định bởi các câu lệnh lớp. Chúng có các thuộc tính giống như Functions và hai thuộc tính khác.

file

Tên của tệp trong đó lớp được xác định.

module

Tên của mô-đun xác định lớp được mô tả.

name

Tên của lớp học.

lineno

Số dòng trong tệp nơi định nghĩa bắt đầu.

parent

Đối với các lớp cấp cao nhất, None. Đối với các lớp lồng nhau, lớp cha.

Added in version 3.7.

children

Từ điển ánh xạ tên tới các bộ mô tả cho các hàm và lớp lồng nhau.

Added in version 3.7.

super

Danh sách các đối tượng Class mô tả các lớp cơ sở trực tiếp của lớp được mô tả. Các lớp được đặt tên là siêu lớp nhưng readmodule_ex() không thể phát hiện được sẽ được liệt kê dưới dạng một chuỗi có tên lớp thay vì là đối tượng Class.

methods

Tên phương thức ánh xạ dictionary thành số dòng. Điều này có thể được bắt nguồn từ từ điển children mới hơn, nhưng vẫn có khả năng tương thích ngược.