Đó là một sự nhầm lẫn lớn đối với những người mới bắt đầu làm việc ở Python và câu trả lời ở đây có một chút khó hiểu nên tôi sẽ làm cho nó dễ dàng hơn.
Khi chúng tôi hướng dẫn Python chạy kịch bản của chúng tôi, có một vài bước mà Python thực hiện trước khi mã của chúng tôi thực sự bắt đầu khủng hoảng:
- Nó được tổng hợp thành mã byte.
- Sau đó, nó được chuyển đến máy ảo.
Khi chúng tôi thực thi một số mã nguồn, Python biên dịch nó vào mã byte. Biên dịch là một bước dịch và mã byte là một đại diện độc lập nền tảng thấp của mã nguồn.
Lưu ý rằng mã byte python không phải là mã máy nhị phân [ví dụ: hướng dẫn cho chip intel].
Trên thực tế, Python dịch từng câu lệnh của mã nguồn thành các hướng dẫn mã byte bằng cách phân tách chúng thành các bước riêng lẻ. Bản dịch mã byte được thực hiện để thực hiện tốc độ. Mã byte có thể được chạy nhanh hơn nhiều so với các câu lệnh mã nguồn gốc. Nó có tiện ích mở rộng và nó sẽ được viết nếu nó có thể viết vào máy của chúng tôi.
Vì vậy, lần tới khi chúng tôi chạy cùng một chương trình, Python sẽ tải tệp .pyc và bỏ qua bước biên dịch trừ khi nó được thay đổi. Python tự động kiểm tra dấu thời gian của các tệp mã nguồn và byte để biết khi nào nó phải được biên dịch lại. Nếu chúng ta định lại mã nguồn, mã byte sẽ tự động tạo lại vào lần tiếp theo chương trình được chạy.
Nếu Python không thể viết các tệp mã byte vào máy của chúng tôi, chương trình của chúng tôi vẫn hoạt động. Mã byte được tạo trong bộ nhớ và chỉ cần loại bỏ trên lối ra chương trình. Nhưng bởi vì thời gian khởi động tốc độ .PYC, chúng tôi có thể muốn đảm bảo rằng nó đã được viết cho các chương trình lớn hơn.
Hãy tóm tắt những gì xảy ra đằng sau hậu trường. Khi Python thực hiện một chương trình, Python đọc .Py vào bộ nhớ và phân tích cú pháp nó để có được mã byte, sau đó tiếp tục thực thi. Đối với mỗi mô -đun được chương trình nhập, Python trước tiên kiểm tra xem liệu có phiên bản Bytecode được biên dịch trước, trong .Pyo hoặc .pyc, có dấu thời gian tương ứng với tệp .py của nó. Python sử dụng phiên bản bytecode nếu có. Mặt khác, nó phân tích tệp .py của mô -đun, lưu nó vào tệp .pyc và sử dụng mã byte mà nó vừa tạo. When Python executes a program, Python reads the .py into memory, and parses it in order to get a bytecode, then goes on to execute. For each module that is imported by the program, Python first checks to see whether there is a precompiled bytecode version, in a .pyo or .pyc, that has a timestamp which corresponds to its .py file. Python uses the bytecode version if any. Otherwise, it parses the module's .py file, saves it into a .pyc file, and uses the bytecode it just created.
Các tập tin mã byte cũng là một cách vận chuyển mã Python. Python vẫn sẽ chạy một chương trình nếu tất cả những gì nó có thể tìm thấy là các tệp.pyc, ngay cả khi các tệp nguồn .Py gốc không có ở đó.
Máy ảo Python [PVM]
Khi chương trình của chúng tôi đã được biên dịch thành mã byte, nó sẽ được chuyển đến để thực hiện vào máy ảo Python [PVM]. PVM không phải là một chương trình riêng biệt. Nó không cần phải được cài đặt bởi chính nó. Trên thực tế, PVM chỉ là một vòng lặp lớn mà lặp lại thông qua hướng dẫn mã byte của chúng tôi, từng người một, để thực hiện các hoạt động của họ. PVM là động cơ thời gian chạy của Python. Nó luôn luôn có mặt như là một phần của hệ thống Python. Đó là thành phần thực sự chạy các tập lệnh của chúng tôi. Về mặt kỹ thuật, nó chỉ là bước cuối cùng của những gì được gọi là phiên dịch Python.
Cải thiện bài viết
Lưu bài viết
Cải thiện bài viết
Lưu bài viết
Đọc
Now the question is – if there is any proof that python first compiles the program internally and then run the code via interpreter?
The answer is yes! and note this compiled
part is get deleted by the python[as soon as you execute your code] just it does not want programmers to get into complexity.
Mã: Mã Python mẫu
print
[
"i am learning python"
]
print
[
"i am enjoying it"
]
Bây giờ nếu bạn chạy mã này bằng dấu nhắc lệnh chỉ cần lưu mã này trên trong notepad và lưu với phần mở rộng. Chỉ cần lưu mã với tiện ích mở rộng PY PY, giả sử bạn đã tạo một thư mục có tên Python_Prog trong ổ D.
syntax: python [name of the program.py] and press
enter.
Note: If you are writing code in the notepad just save the code with extension “py” inlet suppose you have created a folder named python_prog in d drive.
Khi bạn nhấn nhập mã byte sẽ được tạo. Một thư mục được tạo và điều này sẽ chứa mã byte của chương trình của bạn. Thư mục này nằm trong thư mục Python_prog nơi bạn sẽ lưu mã Python của mình.
Bây giờ để chạy mã byte được biên dịch chỉ cần nhập lệnh sau trong dấu nhắc lệnh:
the extension .pyc is python compiler..
Vì vậy, người ta đã chứng minh rằng các chương trình Python đều được biên soạn cũng như được giải thích !! Nhưng phần tổng hợp được ẩn khỏi lập trình viên.