Computer >> Máy Tính >  >> Lập trình >> Python

Các lớp cơ sở thông dịch viên trong Python

Chế độ tương tác của Python hoạt động trên nguyên tắc REPL (Đọc - Đánh giá - In - Vòng lặp). Mô-đun mã trong thư viện tiêu chuẩn của Python cung cấp các hàm tiện lợi và các lớp để thiết lập môi trường REPL từ bên trong tập lệnh Python.

Hai lớp sau được định nghĩa trong mô-đun mã:

InteractiveInterpreter: Lớp này xử lý trạng thái phân tích cú pháp và thông dịch (không gian tên của người dùng)

InteractiveConsole: Mô phỏng chặt chẽ hoạt động của trình thông dịch Python tương tác.

Hai chức năng tiện lợi trong mô-đun là:

tương tác (): Chức năng thuận tiện để chạy vòng lặp đọc-đánh giá-in.

compile_command (): Hàm này hữu ích cho các chương trình muốn mô phỏng vòng lặp chính của trình thông dịch Python (REPL).

Phương pháp thông dịch viên tương tác

runningource (): Biên dịch và chạy một số nguồn trong trình thông dịch.

runcode (): Thực thi một đối tượng mã

Các phương pháp Bảng điều khiển tương tác:

Bởi vì lớp InteractiveConsole là một lớp con của InteractiveInterpreter, các phương thức trên sẽ tự động có sẵn. Ngoài ra, các phương pháp sau được xác định.

tương tác (): Mô phỏng chặt chẽ bảng điều khiển Python tương tác.

push (): Đẩy một dòng văn bản nguồn sang trình thông dịch.

bộ đệm đặt lại (): Xóa mọi văn bản nguồn chưa được xử lý khỏi bộ đệm đầu vào.

raw_input (prompt ="")

Viết lời nhắc và đọc một dòng theo mặc định từ sys.stdin

Ví dụ

import code
x = 10
y = 20
def add(x,y):
   return x+y
print (add(x,y))
code.interact(local=locals())
print (x,y)
print (add(x,y))

Trong đoạn mã trên, hai vaiable được định nghĩa và chuyển cho một hàm. Chúng tôi gọi anh ấy bảng điều khiển tương tác. Đối số local =local () cho phép sử dụng không gian tên cục bộ làm mặc định trong vòng lặp thông dịch.

Nếu bạn gán các giá trị khác nhau cho các biến và thoát khỏi bảng điều khiển bằng cách nhấn ctrl + D, các giá trị đó hiện được chuyển cho hàm

Đầu ra

addition= 30
Python 3.6.6 |Anaconda custom (64-bit)| (default, Oct 9 2018, 12:34:16)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> x=100
>>> y=200
>>>

now exiting InteractiveConsole...
100 200
addition = 300