Tôi đang sử dụng getattr để gọi các hàm khác nhau tùy thuộc vào biến.Python sử dụng hàm getattr để gọi với tham số biến
Im làm một cái gì đó như thế:
getattr(foo, bar)()
đó làm việc, kêu gọi các chức năng như foo.bar()
Vấn đề của tôi là tôi có chức năng 'bar' và tôi muốn gọi nó với nhau thông số. Ví dụ:
def f1() :
pass
def f2(param1) :
pass
def f3(param1,param2) :
pass
để 'bar' có thể là f1, f2, hoặc f3
Tôi cố gắng này: assumming rằng params được một danh sách chứa tất cả các thông số cần thiết cho các chức năng 'bar'
getattr(foo, bar) (for p in params :)
tôi xem cho một giải pháp "sạch", không có cần thiết để xem độ dài trên params biến
Tôi biết OP không hỏi cụ thể, nhưng tôi cũng sẽ thêm '** kwargs', vì vậy anh ta không kết thúc với việc khó theo dõi lỗi sau này nếu anh ta cố gắng sử dụng các đối số từ khóa. –
@ sr2222 - Đã thêm. – mgilson