Dấu phẩy để tối ưu hóa các biến Python

Sep 09 2020

Tôi đã có một câu hỏi về cách mã python có thể được định dạng.

 (q, a), b = divmod(b, a), a
        y0, y1 = y1, y0 - q * y1

Đối với một cái gì đó như trên, làm thế nào để dấu phẩy để chứng minh các biến hoạt động? Ai đó có thể cho biết mã này sẽ trông như thế nào nếu không sử dụng dấu phẩy giữa y0 và y1 hoặc (q, a) không? Tôi biết đó phải là một cách nào đó để tối ưu hóa mã.

Trả lời

1 YannickFunk Sep 09 2020 at 21:29

Dấu phẩy tại các nhiệm vụ được sử dụng để tạo bộ dữ liệu ở phía bên phải và giải nén ở phía bên trái , ví dụ:

x, y = 1, 3

Tương đương về mặt chức năng với

x = 1
y = 3

Hoặc ví dụ như giải nén danh sách , ví dụ:

example_list = [1, 4, 5]
x, y, z = example_list

Tương đương về mặt chức năng với:

x = example_list[0]
y = example_list[1]
z = example_list[2]

Vì vậy, mã của bạn không có "dấu phẩy" sẽ là:

(q, a) = divmod(b, a) # unpacking
b = a
old_y0 = y0
y0 = y1
y1 = old_y0 - q * y1

Lý do cho điều này chủ yếu là conveniencevà không phải là tối ưu hóa mã.