Hướng dẫn global symbol table python - bảng biểu tượng toàn cầu python

Mã nguồn: lib/symtable.py Lib/symtable.py


Các bảng biểu tượng được tạo bởi trình biên dịch từ AST ngay trước đó bytecode được tạo. Bảng ký hiệu chịu trách nhiệm tính toán phạm vi của mọi định danh trong mã. symtable cung cấp một giao diện để kiểm tra các bảng này.

Tạo bảng biểu tượng

symtable.symtable (mã, tên tệp, compile_type) ¶symtable(code, filename, compile_type)

Trả lại Toplevel SymbolTable cho mã nguồn Python. Tên tệp là tên của tệp chứa mã. compile_type giống như đối số chế độ thành compile().

Kiểm tra bảng biểu tượng

classSymtable.symboltable¶symtable.SymbolTable

Một bảng không gian tên cho một khối. Các nhà xây dựng không công khai.

get_type () ¶()

Trả về loại của bảng ký hiệu. Các giá trị có thể là 'class', 'module''function'.

get_id ()()

Trả lại số nhận dạng bảng.

get_name () ¶()

Trả lại tên bảng. Đây là tên của lớp nếu bảng dành cho một lớp, tên của hàm nếu bảng dành cho hàm hoặc 'top' nếu bảng là toàn cầu (get_type() trả về 'module').

get_lineno () ¶()

Trả về số của dòng đầu tiên trong khối Bảng này biểu thị.

is_optimized () ¶()

Trả lại symtable0 Nếu người dân địa phương trong bảng này có thể được tối ưu hóa.

is_nested () ¶()

Trả về symtable0 nếu khối là một lớp hoặc hàm lồng nhau.

has_children () ¶()

Trả về symtable0 Nếu khối có các không gian tên lồng nhau trong đó. Chúng có thể thu được với symtable3.

get_identifiers () ¶()

Trả về một đối tượng xem chứa tên của các ký hiệu trong bảng. Xem tài liệu của các đối tượng xem.documentation of view objects.

Tra cứu (tên)(name)

Tên tra cứu trong bảng và trả về một thể hiện symtable4.

get_symbols ()()

Trả về một danh sách các phiên bản symtable4 cho các tên trong bảng.

get_children () ¶()

Trả về một danh sách các bảng biểu tượng lồng nhau.

ClassSymtable.Function¶ symtable.Function

Một không gian tên cho một hàm hoặc phương thức. Lớp này kế thừa SymbolTable.

get_parameter ()()

Trả về một tuple chứa tên của các tham số cho hàm này.

get_locals () ¶()

Trả về một tuple chứa tên của người dân địa phương trong chức năng này.

get_globals ()()

Trả về một tuple chứa tên của Globals trong chức năng này.

get_nonlocals ()()

Trả về một tuple có chứa tên của các phi địa điểm trong chức năng này.

get_frees () ¶()

Trả về một tuple chứa tên của các biến miễn phí trong hàm này.

ClassSymtable.Class¶ symtable.Class

Một không gian tên của một lớp học. Lớp này kế thừa SymbolTable.

get_methods ()()

Trả về một tuple chứa tên của các phương thức được khai báo trong lớp.

classSymtable.symbol¶ symtable.Symbol

Một mục trong một SymbolTable tương ứng với một định danh trong nguồn. Các nhà xây dựng không công khai.

get_name () ¶()

Trả lại tên bảng. Đây là tên của lớp nếu bảng dành cho một lớp, tên của hàm nếu bảng dành cho hàm hoặc 'top' nếu bảng là toàn cầu (get_type() trả về 'module').

get_lineno () ¶()

Trả về số của dòng đầu tiên trong khối Bảng này biểu thị.

is_optimized () ¶()

Trả lại symtable0 Nếu người dân địa phương trong bảng này có thể được tối ưu hóa.

is_nested () ¶()

Trả về symtable0 nếu khối là một lớp hoặc hàm lồng nhau.

has_children () ¶()

Trả về symtable0 Nếu khối có các không gian tên lồng nhau trong đó. Chúng có thể thu được với symtable3.

get_identifiers () ¶()

Trả về một đối tượng xem chứa tên của các ký hiệu trong bảng. Xem tài liệu của các đối tượng xem.

Tra cứu (tên)()

Tên tra cứu trong bảng và trả về một thể hiện symtable4.

get_symbols ()()

Trả về một danh sách các phiên bản symtable4 cho các tên trong bảng.

get_children () ¶()

Trả về một danh sách các bảng biểu tượng lồng nhau.

ClassSymtable.Function¶

Một không gian tên cho một hàm hoặc phương thức. Lớp này kế thừa SymbolTable.()

get_parameter ()

Trả về một tuple chứa tên của các tham số cho hàm này.()

get_locals () ¶

Trả về một tuple chứa tên của người dân địa phương trong chức năng này.()

get_globals ()

Trả về một tuple chứa tên của Globals trong chức năng này.

get_nonlocals ()

>>> table = symtable.symtable("def some_func(): pass", "string", "exec")
>>> table.lookup("some_func").is_namespace()
True

Trả về một tuple có chứa tên của các phi địa điểm trong chức năng này.

get_frees () ¶()

Trả về một tuple chứa tên của các biến miễn phí trong hàm này.

ClassSymtable.Class¶()

Một không gian tên của một lớp học. Lớp này kế thừa SymbolTable.