sách gpt4 ai đã đi

Python import X hay from X import Y? (Hiệu suất)

In lại Tác giả: IT Lao Gao Thời gian cập nhật: 2023-10-28 22:17:32 28 4
mua khóa gpt4 Nike

Nếu có một thư viện mà tôi sẽ sử dụng cho ít nhất hai phương pháp, thì có sự khác biệt nào về hiệu suất hoặc mức sử dụng bộ nhớ giữa các phương pháp sau không?

từ X nhập phương pháp 1, phương pháp 2

nhập khẩu X

1 Câu trả lời

Có một sự khác biệt, bởi vì nhập khẩu x Có hai cách tra cứu tên trong phiên bản này: một cho tên mô-đun và một cho tên hàm; mặt khác, sử dụng từ x nhập y, bạn chỉ có một lần tra cứu.

Bạn có thể thấy rõ nhất điều này bằng cách sử dụng mô-đun dis:

nhập khẩu ngẫu nhiên
định nghĩa f_1():
random.seed()

dis.dis(f_1)
0 LOAD_GLOBAL 0 (ngẫu nhiên)
3 LOAD_ATTR 0 (hạt giống)
6 CHỨC_NĂNG_GỌI 0
9 POP_TOP
10 LOAD_CONST 0 (Không có)
13 GIÁ TRỊ TRẢ VỀ

từ hạt giống nhập khẩu ngẫu nhiên

định nghĩa f_2():
hạt giống()

dis.dis(f_2)
0 LOAD_GLOBAL 0 (hạt giống)
3 CHỨC_NĂNG_GỌI 0
6 POP_TOP
7 LOAD_CONST 0 (Không có)
10 GIÁ TRỊ TRẢ VỀ

Như bạn có thể thấy, sử dụng từ x nhập y Biểu mẫu này sẽ nhanh hơn.

Mặt khác,nhập khẩu x So sánh từ x nhập y Rẻ hơn vì ít phải tra cứu tên hơn; chúng ta hãy xem mã đã dịch ngược:

định nghĩa f_3():
nhập khẩu ngẫu nhiên

dis.dis(f_3)
0 TẢI_CONST 1 (-1)
3 LOAD_CONST 0 (Không có)
6 IMPORT_NAME 0 (ngẫu nhiên)
9 STORE_FAST 0 (ngẫu nhiên)
12 LOAD_CONST 0 (Không có)
15 GIÁ TRỊ TRẢ VỀ

định nghĩa f_4():
từ hạt giống nhập khẩu ngẫu nhiên

dis.dis(f_4)
0 TẢI_CONST 1 (-1)
3 LOAD_CONST 2 (('hạt giống',))
6 IMPORT_NAME 0 (ngẫu nhiên)
9 IMPORT_FROM 1 (hạt giống)
12 STORE_FAST 0 (hạt giống)
15 POP_TOP
16 LOAD_CONST 0 (Không có)
19 GIÁ TRỊ TRẢ VỀ

Tôi không biết tại sao nhưng có vẻ như từ x nhập y trông giống như một lệnh gọi hàm và do đó tốn kém hơn dự kiến; do đó, nếu hàm được nhập chỉ được sử dụng một lần, điều đó có nghĩa là sử dụng nhập khẩu x sẽ nhanh hơn và nếu sử dụng nhiều lần, hãy sử dụng sẽ nhanh hơn khi nhập y từ x.

Nói như vậy, như mọi khi, tôi khuyên bạn nênkhông muốnĐưa ra quyết định về cách nhập các mô-đun và chức năng dựa trên kiến ​​thức này vì đây chỉ là một số tối ưu hóa vội vàng.
Cá nhân tôi nghĩ rằng không gian tên rõ ràng dễ đọc hơn trong nhiều trường hợp và tôi khuyên bạn cũng nên làm như vậy: sử dụng tính thẩm mỹ của riêng bạn :-)

Về Python import X hay from X import Y? (Hiệu suất), chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/3591962/

28 4 0
CNTT Lao Gao
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com