tôi phải dưa một mảng của các đối tượng như thế này:Python, cPickle, tẩy các hàm lambda
import cPickle as pickle
from numpy import sin, cos, array
tmp = lambda x: sin(x)+cos(x)
test = array([[tmp,tmp],[tmp,tmp]],dtype=object)
pickle.dump(test, open('test.lambda','w'))
và nó mang lại cho các lỗi sau:
TypeError: can't pickle function objects
Có cách nào xung quanh đó?
Có vẻ như một điều kỳ lạ để làm. Trường hợp sử dụng là gì? – Aya
@Aya lambdify trong SymPy làm cho nó rất thuận tiện để tạo ra các hàm lambda. Và tôi muốn đánh giá chúng bằng cách sử dụng Cython. Bạn có thể [tham khảo câu hỏi khác này để biết thêm thông tin] (http://stackoverflow.com/questions/16295140/numerical-integration-over-a-matrix-of-functions-sympy-and-scipy) –
Vâng, tôi không Không biết nhiều về Cython, nhưng giải pháp của Martijn sẽ chỉ hoạt động nếu Cython có thể nhập tệp Python trong đó hàm 'tmp (x)' đã được xác định. – Aya