Chúng ta có thể chuyển mã python sang c không?

rất nhiều người sử dụng Cython để biên dịch mã python của họ trong C để tăng hiệu suất. Nó rất dễ làm và có thể là thứ mà bạn muốn tận dụng

Đảm bảo rằng bạn đã cài đặt Cython trước

Quá trình tổng thể diễn ra như thế này

  • Mang các phần mã của bạn mà bạn muốn chuyển đổi sang c thành một tệp riêng
  • Cung cấp thông tin về loại và cho Cython biết những gì bạn muốn sử dụng trong Python và những gì bạn không sử dụng
  • biên dịch tệp riêng biệt bằng cách sử dụng thiết lập. tập tin py

Trong ví dụ này, giả sử chúng ta muốn biên dịch hàm này thành C

def AddToTen[]:
x = 0
for i in range[1,11]:
x+=i
return x

Điều đầu tiên chúng ta cần làm là di chuyển cái này từ một. tập tin py vào một. pyx, đó là những gì Cython sử dụng. Bây giờ chúng tôi sẽ cung cấp thông tin loại cho các biến của chúng tôi

Bạn muốn đọc câu chuyện này sau?

trong Cython, có ba câu lệnh def

  • cdef. khai báo thứ gì đó sẽ chỉ được sử dụng trong c [như các biến bên trong hàm của chúng ta]
  • pdef. khai báo thứ gì đó sẽ chỉ được sử dụng trong Python
  • cpdef. tuyên bố một cái gì đó điều này sẽ được sử dụng trong cả hai
cpdef int AddToTen[]:
cdef int x = 0
cdef int i
for i in range[1,11]:
x+=i
return x

Vì tôi sẽ không gọi các biến bên trong hàm của chúng ta trong Python, nên tôi đã sử dụng cdef, nhưng đối với chính hàm đó, tôi đã sử dụng cpdef

Ngoài ra, lưu ý rằng chúng tôi đã nhập I trong vòng lặp for và hàm vì nó trả về một int

Bây giờ chúng ta phải biên dịch. pyx. Trong một tệp riêng biệt [của tôi có tên là setup. py], hãy viết đoạn mã sau

from distutils.core import setup
from Cython.Build import cythonize
setup[ext_modules = cythonize['The_Name_Of_Your_Pyx_Here.pyx']]

Cuối cùng, trong terminal [đảm bảo rằng bạn đang ở trong cùng một thư mục], hãy chạy dòng

python setup.py build_ext --inplace

Điều này sẽ biên dịch pyx của bạn và bạn sẽ thấy một tệp có cùng tên với phần mở rộng. c thay vì pyx

Giờ đây, bạn có thể nhập các hàm c của mình vào các tệp python cục bộ, với điều kiện là bạn đã sử dụng cpdef, chỉ bằng cách nhập 'tên tệp của bạn'. Các IDE có xu hướng đưa ra lỗi nhập cho tôi mặc dù chúng đã nhập tốt. Bạn cũng có thể nhập các thư viện python vào tệp pyx, nhưng theo kinh nghiệm của tôi, nó hoạt động giống như trong Python

Tôi đã thử đọc nó và chuyển đổi nó nhưng tôi không có kinh nghiệm với python, tôi chỉ biết C, xin vui lòng ai đó có thể giúp và chuyển đổi nó cho tôi

Đây không phải là dịch vụ chuyển đổi mã. chúng tôi không ở đây để dịch mã cho bạn
Ngay cả khi chúng tôi đã làm như vậy, những gì bạn nhận được sẽ không phải là "mã tốt" trong ngôn ngữ đích – chúng dựa trên các khuôn khổ rất khác nhau và điều khiến thứ gì đó hoạt động trong một ngôn ngữ không phải lúc nào cũng "dịch" trực tiếp sang ngôn ngữ khác
Vì vậy, những gì bạn nhận được là mã rất kém, rất khó nếu không muốn nói là không thể bảo trì, không thể nâng cấp tốt và điều đó sẽ khiến bạn vô cùng đau đầu nếu bản gốc bị thay đổi. Và sẽ là một cơn ác mộng khi gỡ lỗi nếu nó không hoạt động "ngay lập tức"
Thay vào đó, hãy sử dụng mã nguồn làm thông số kỹ thuật cho một ứng dụng mới được viết bằng và cho ngôn ngữ/khung mục tiêu và viết mã nguồn đó từ đầu bằng cách sử dụng bản gốc làm "mẫu". Bạn sẽ nhận được một kết quả tốt hơn nhiều, giúp bạn tiết kiệm rất nhiều thời gian trong thời gian dài

Và thẳng thắn?
1] Bạn sẽ không học được gì về cách viết mã C và sẽ gặp vấn đề thực sự khi bạn hoàn thành một nhiệm vụ mà bạn không thể tìm thấy [và nhiệm vụ này sẽ phức tạp hơn] hoặc đạt được bài kiểm tra của bạn và không thể sao chép
2] Gia sư của bạn sẽ thấy rõ những gì bạn đã làm [và có thể là ngôn ngữ mà bạn tìm thấy nó] và bạn có thể tự động bị trượt khóa học vì đạo văn

Tôi sẽ suy nghĩ rất lâu về toàn bộ phương pháp giải bài tập về nhà của bạn, nếu tôi là bạn

Thêm giải pháp của bạn ở đây

 B   I   U   S  small BIG code var     &  link [^] encode untab case indent outdent

Xem trước 0

thành viên hiện có

hoặc tham gia với chúng tôi

Tải xuống, Bình chọn, Nhận xét, Xuất bản

Email của bạn

Email này đang được sử dụng. Bạn có cần mật khẩu của bạn?

Mật khẩu tùy chọn

Khi trả lời một câu hỏi xin vui lòng

  1. Đọc kỹ câu hỏi
  2. Hiểu rằng tiếng Anh không phải là ngôn ngữ đầu tiên của mọi người, vì vậy hãy khoan dung với lỗi chính tả và ngữ pháp
  3. Nếu một câu hỏi được diễn đạt kém thì hãy yêu cầu làm rõ, bỏ qua nó hoặc chỉnh sửa câu hỏi và khắc phục sự cố. Xúc phạm không được chào đón
  4. Đừng bảo ai đó đọc hướng dẫn. Rất có thể họ có và không nhận được. Đưa ra câu trả lời hoặc chuyển sang câu hỏi tiếp theo
Hãy làm việc để giúp các nhà phát triển, không làm họ cảm thấy ngu ngốc


Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code [CPOL]

Python có được biên dịch thành C không?

Python là ngôn ngữ thông dịch, có nghĩa là mã nguồn của chương trình Python được chuyển đổi thành mã byte, sau đó được thực thi bởi máy ảo Python. Python khác với các ngôn ngữ được biên dịch chính, chẳng hạn như C và C + +, vì mã Python không bắt buộc phải xây dựng và liên kết như mã cho các ngôn ngữ này .

Bạn có thể tạo Python nhanh như C không?

Bạn có thể viết trình thông dịch C bằng python, nhưng nó sẽ rất chậm. Bạn có thể viết trình biên dịch C bằng python và cuối cùng nó có thể tạo mã tốt như bất kỳ trình biên dịch C nào khác. Ngôn ngữ không phải là thực hiện của nó. Bạn sẽ không bao giờ thấy Python hoạt động nhanh như C .

Tại sao C nhanh hơn nhiều so với Python?

C là ngôn ngữ nhanh hơn so với Python vì nó được biên dịch . Các chương trình Python thường chậm hơn các chương trình C khi chúng được diễn giải. Trong C, loại của các biến khác nhau phải được khai báo khi chúng được tạo và chỉ các giá trị của các loại cụ thể đó phải được gán cho chúng.

Chủ Đề