Biên dịch Python ()

Phương thức compile () trả về một đối tượng mã Python từ nguồn (chuỗi bình thường, chuỗi byte hoặc đối tượng AST).

Cú pháp của compile()là:

 biên dịch (nguồn, tên tệp, chế độ, cờ = 0, dont_inherit = Sai, tối ưu hóa = -1)

compile() được sử dụng nếu mã Python ở dạng chuỗi hoặc là một đối tượng AST và bạn muốn thay đổi nó thành một đối tượng mã.

Đối tượng mã được trả về compile()sau này có thể được gọi bằng cách sử dụng các phương thức như: execute () và eval (), sẽ thực thi mã Python được tạo động.

compile () Tham số

  • source - một chuỗi bình thường, một chuỗi byte hoặc một đối tượng AST
  • filename- tệp mà từ đó mã được đọc. Nếu nó không được đọc từ một tệp, bạn có thể tự đặt tên
  • mode- Hoặc exechoặc evalhoặc single.
    • eval - chỉ chấp nhận một biểu thức duy nhất.
    • exec - Nó có thể lấy một khối mã có các câu lệnh Python, lớp và các hàm, v.v.
    • single - nếu nó bao gồm một câu lệnh tương tác
  • flags(tùy chọn) và dont_inherit(tùy chọn) - kiểm soát những câu lệnh nào trong tương lai ảnh hưởng đến việc biên dịch nguồn. Giá trị mặc định: 0
  • optimize(tùy chọn) - mức tối ưu hóa của trình biên dịch. Giá trị mặc định -1.

Giá trị trả về từ biên dịch ()

compile() phương thức trả về một đối tượng mã Python.

Ví dụ: compile () hoạt động như thế nào?

 codeInString = 'a = 5b=6sum=a+bprint("sum =",sum)' codeObejct = compile(codeInString, 'sumstring', 'exec') exec(codeObejct)

Đầu ra

 tổng = 11

Ở đây, nguồn ở dạng chuỗi bình thường. Tên tệp là chuỗi. Và, execchế độ sau này cho phép sử dụng exec()phương thức.

phương thức compile () chuyển đổi chuỗi thành đối tượng mã Python. Đối tượng mã sau đó được thực thi bằng exec()phương thức.

thú vị bài viết...