Trong tutorial của tài liệu Cython, có cimport và nhập khẩu báo cáo của module NumPy:Cython: cimport và nhập khẩu NumPy như (cả hai) np
import numpy as np
cimport numpy as np
tôi thấy ước này là khá phổ biến trong NumPy/cython người dùng.
Điều này có vẻ lạ đối với tôi vì chúng là cả hai được đặt tên là np. Trong đó một phần của mã, nhập/cimported np được sử dụng? Tại sao trình biên dịch cython không gây nhầm lẫn cho chúng?
Vì 'cimport' không thực sự nhập mô-đun (Python). Nó nhập các định nghĩa [(C)] (http://docs.cython.org/src/userguide/sharing_declarations.html#the-cimport-statement). Tôi không biết, nhưng tôi có thể tưởng tượng rằng nếu bạn chuyển dòng thứ hai thành 'cimport numpy' chỉ, mọi thứ sẽ bị phá vỡ: nó rất có thể cần sự tương ứng giữa tên mô-đun Python thực tế như được sử dụng trong tập lệnh và các định nghĩa không gian tên. – Evert
@Evert Bạn cũng có thể sử dụng 'cimport numpy', giống như cách mà người dùng có thể sử dụng' import numpy', nó hoạt động giống như vậy, nhưng 'cimport' cho phép truy cập vào các hàm hoặc thuộc tính C trong mô-đun đã nhập trong khi' import Các hàm hoặc các thuộc tính của Python đến –