• 29. Thực thi dựa trên ngăn xếp

    29. Thực thi dựa trên ngăn xếp CPython thực thi hầu hết mã byte bằng máy xếp chồng. Máy ngăn xếp sử dụng ngăn xếp toán hạng ngầm thay vì đặt tên rõ ràng cho các thanh ghi nguồn và đích trong mỗi lệnh. Trong CPython, ngăn xếp này thuộc về khung hiện tại. Nó lưu trữ các tham chiếu đến các đối tượng Python. Hướng dẫn mã byte đẩy…

  • 31. Gọi hàm

    31. Lệnh gọi hàm Lệnh gọi hàm là một trong những đường dẫn thực thi quan trọng nhất trong CPython. Một cuộc gọi kết nối nhiều hệ thống cùng một lúc: thực thi mã byte, khung, liên kết đối số, bộ mô tả, phương thức, bao đóng, API C, đếm tham chiếu, ngoại lệ và xử lý trả về. Một cuộc gọi đơn giản: python id="wauh11" result = f(1, 2)…

  • 28. Khung

    #28. Khung Khung là bản ghi thời gian chạy cho một lần thực thi mã Python đang hoạt động. Khi CPython gọi một hàm Python, thực thi phần thân mô-đun, chạy phần thân lớp, tiếp tục trình tạo hoặc tiếp tục một coroutine, nó sẽ sử dụng bản ghi thực thi giống như khung để giữ trạng thái hiện tại. Một đối tượng mã cho biết những gì cần thực…

  • 32. Cuộc gọi phương thức

    32. Cuộc gọi phương thức Cuộc gọi phương thức là cuộc gọi hàm thường bắt đầu bằng quyền truy cập thuộc tính. Chúng là trung tâm của mô hình đối tượng của Python vì hầu hết hành vi của đối tượng được thể hiện thông qua các phương thức. Một cuộc gọi phương thức như: python id="l3owku" obj.method(arg) trông giống như một thao tác, nhưng CPython thực hiện một số…

  • 37. Kết hợp mẫu

    37. Khớp mẫu Khớp mẫu là hệ thống khớp cấu trúc của Python. Nó được thực hiện bởi match tuyên bố và case khoản.```python match value: case 0: result = "zero" case [x, y]: result = x + y case {"name": name}: result = name case _: result = None Ở c ấ p độ CPython , vi ệ c so kh ớ p m ẫ u đượ c bi…

  • 34. Xử lý ngoại lệ

    34. Xử lý ngoại lệ Xử lý ngoại lệ là hệ thống luồng điều khiển mà CPython sử dụng khi một thao tác không thể hoàn thành bình thường. Nó bao gồm rõ ràng raise câu lệnh, hoạt động không thành công, nhập không thành công, cuộc gọi không thành công, chấm dứt trình tạo, dọn dẹp trình quản lý bối cảnh, xây dựng truy nguyên và truyền bá qua…

  • 38. Sự hiểu biết

    #38. Sự hiểu biết Sự hiểu biết là cú pháp nhỏ gọn để xây dựng các thùng chứa hoặc các trình vòng lặp giống như trình tạo từ một vòng lặp khác. CPython triển khai chúng dưới dạng đối tượng mã được biên dịch với phạm vi thực thi riêng. Các hình thức phổ biến: python [x * 2 for x in xs] {x * 2 for x in xs}…

  • 27. Vòng đánh giá

    27. Vòng đánh giá Vòng đánh giá là công cụ thực thi trung tâm của CPython. Nó lấy một đối tượng mã được biên dịch, thực thi các lệnh mã byte của nó và tạo ra một kết quả hoặc một ngoại lệ. Ở mức độ cao, quá trình thực thi CPython trông như thế này:```text Python source ↓ tokens ↓ parser ↓ AST ↓ symbol table ↓ compiler ↓…

  • 36. Coroutine và Async

    36. Coroutine và Async Coroutine là các phép tính có thể tiếp tục được sử dụng cho lập trình không đồng bộ. Họ để mã Python tạm dừng ở mức await điểm, đưa điều khiển trở lại vòng lặp sự kiện và sau đó tiếp tục lại khi thao tác được chờ đợi có kết quả. Một coroutine tương tự như một trình tạo vì cả hai đều duy trì…

  • 35. Máy phát điện

    #35. Máy phát điện Máy phát điện là chức năng có thể tiếp tục. Một hàm bình thường bắt đầu, chạy và kết thúc với một giá trị trả về. Trình tạo có thể khởi động, tạo ra một giá trị, tạm dừng khung của nó, sau đó tiếp tục từ cùng một vị trí lệnh, tạo ra một giá trị khác và lặp lại cho đến khi kết thúc.…

  • 33. Tra cứu thuộc tính

    #33. Tra cứu thuộc tính Tra cứu thuộc tính là quá trình chạy được sử dụng để đánh giá các biểu thức như:```python id="5ob0m9" obj.name M ộ t bi ể u th ứ c thu ộ c t í nh đơ n gi ả n c ó th ể k í ch ho ạ t m ộ t l ượ ng l ớ n m á y m ó c…

  • 39. Đóng cửa và tế bào

    39. Đóng cửa và ô Các bao đóng cho phép hàm lồng nhau sử dụng các biến từ hàm kèm theo sau khi hàm kèm theo đó trả về.```python def make_adder(n): def add(x): return x + n return add add10 = make_adder(10) print(add10(5)) Đầu ra: text 15 ```Biến n thuộc về make_adder , Nhưng add sau này vẫn sử dụng nó. CPython hỗ trợ điều này bằng cách di chuyển…

  • 30. Hướng dẫn mã byte

    30. Hướng dẫn mã byte Hướng dẫn mã byte là các hoạt động được thực hiện bởi vòng đánh giá CPython. Chúng là dạng mã Python nhỏ gọn, ở cấp độ trình thông dịch sau khi phân tích cú pháp, xây dựng AST, phân tích ký hiệu và biên dịch. Một hàm Python như:```python id="ya54lv" def add(a, b): return a + b B ạ n c ó th ể ki…