Xin lỗi nếu câu hỏi này đã được nêu ra và trả lời. Những gì tôi cần làm là rất đơn giản trong khái niệm, nhưng tiếc là tôi đã không thể tìm thấy một câu trả lời cho nó trực tuyến.Tạo chức năng động Python với tên tùy chỉnh
Tôi cần tạo các hàm động trong Python (Python2.7) với tên tùy chỉnh khi chạy. Phần thân của mỗi hàm cũng cần được xây dựng trong thời gian chạy nhưng nó gần như giống nhau cho tất cả các hàm.
Tôi bắt đầu với danh sách tên.
func_names = ["func1", "func2", "func3"]
Lưu ý rằng danh sách FUNC_NAME có thể giữ một danh sách tên tùy ý, vì vậy những cái tên sẽ KHÔNG đơn giản là Func1, Func2, func3, ....
Tôi muốn kết quả là:
def func1(*args):
...
def func2(*args):
...
def func3(*args):
...
Lý do tôi cần làm điều này là mỗi tên hàm tương ứng với một trường hợp thử nghiệm mà sau đó được gọi từ thế giới bên ngoài.
cập nhật: Không có đầu vào của người dùng. Tôi đang buộc hai đầu của một mô-đun lớn hơn nhiều. Một đầu xác định các trường hợp thử nghiệm là gì và trong số những thứ khác, điền một danh sách các tên của các trường hợp thử nghiệm. Đầu kia là bản thân các hàm, mà phải có ánh xạ 1: 1 với tên của trường hợp thử nghiệm. Vì vậy, tôi có tên của các trường hợp thử nghiệm, tôi biết những gì tôi muốn làm với mỗi trường hợp thử nghiệm, tôi chỉ cần tạo ra các chức năng có tên của các trường hợp thử nghiệm. Vì tên của các trường hợp thử nghiệm được xác định trong thời gian chạy, việc tạo ra hàm dựa trên các trường hợp thử nghiệm đó cũng phải ở thời gian chạy.
cập nhật: Tôi cũng có thể bọc các hàm được đặt tên tùy chỉnh này trong một lớp nếu điều đó có thể giúp mọi thứ trở nên dễ dàng hơn.
Tôi có thể mã hóa cứng nội dung của các hàm (vì chúng hầu như giống nhau) trong một chuỗi, hoặc tôi có thể căn cứ nó khỏi một lớp cơ sở đã được định nghĩa trước đó. Chỉ cần biết cách điền các hàm với nội dung này.
Ví dụ:
func_content = """
for arg in args:
print arg
"""
Cảm ơn trước,
Mahdi
Không có đầu vào người dùng. Tôi đang buộc hai đầu của một mô-đun lớn hơn nhiều. Một đầu xác định các trường hợp thử nghiệm là gì và trong số những thứ khác, điền một danh sách các tên của các trường hợp thử nghiệm. Đầu kia là bản thân các hàm, mà phải có ánh xạ 1: 1 với tên của trường hợp thử nghiệm. Vì vậy, tôi có tên của các trường hợp thử nghiệm, tôi biết những gì tôi muốn làm với mỗi trường hợp thử nghiệm, tôi chỉ cần tạo ra các chức năng có tên của các trường hợp thử nghiệm. Vì tên của các trường hợp thử nghiệm được xác định trong thời gian chạy, việc tạo ra hàm dựa trên các trường hợp thử nghiệm đó cũng phải ở thời gian chạy. – mahdiolfat