Cách tạo động một hàm bằng Python?Python: tự động tạo hàm tại thời gian chạy
Tôi đã thấy một số câu trả lời ở đây nhưng tôi không thể tìm thấy câu trả lời nào mô tả trường hợp chung nhất.
xem xét:
def a(x):
return x + 1
Làm thế nào để tạo ra chức năng như on-the-fly? Tôi có phải compile('...', 'name', 'exec')
không? Nhưng những gì sau đó? Tạo một hàm giả và thay thế đối tượng mã của nó để sau đó một đối tượng từ bước biên dịch?
Hoặc tôi có nên sử dụng types.FunctionType
không? Làm sao?
Tôi muốn tùy chỉnh tất cả mọi thứ: số lập luận, nội dung của họ, mã trong chức năng cơ thể, kết quả, ...
thể trùng lặp của [chức năng động và vô danh Đúng thể bằng Python?] (Http://stackoverflow.com/questions/10303248/true-dynamic-and-anonymous-functions-possible-in-python) –
Tôi không nghĩ rằng nó là một bản sao: 'dynf = FunctionType (biên dịch ('def f (x): return x + 3', 'dyn.py', 'exec'), globals())' và 'print dynf (1) 'ngắt với' LoạiError: '() không có đối số (1 đã cho)' ' –
Chỉ vì câu trả lời có thể có sai không có nghĩa đây không phải là một câu hỏi trùng lặp. –