2009-12-23 53 views
6

Giả sử tôi có một đối tượng lớp có tên là kiểm tra.Làm cách nào để truy cập phương thức của đối tượng khi tên của phương thức nằm trong một biến?

kiểm tra có nhiều phương pháp khác nhau, một trong số đó là bất kỳ điều gì().

Tôi có một biến có tên là method = "anything"

Làm cách nào để truy cập phương pháp bằng biến có kiểm tra?

Cảm ơn!

+0

Tại sao bạn nghĩ bạn cần điều này? Bạn có thể cung cấp phần còn lại của mã không. Thông thường có một cách đơn giản hơn để thực hiện điều này không liên quan đến việc xác định tên phương thức thông qua một chuỗi. –

Trả lời

9

Lấy thuộc tính với getattr:

method = "whatever" 
getattr(test, method) 

Bạn cũng có thể gọi nó là:

getattr(test, method)() 
2

Để truy cập phương pháp, getattr(test, test.method); theo cách này bạn có thể liên kết nó với một biến, trả về nó như là một kết quả hàm, chuyển nó như một đối số, và vv. Để , hãy gọi cũng như vậy, thêm các đối số được ngoặc đơn (chỉ dấu ngoặc đơn nếu không có đối số), ví dụ getattr(test, test.method)().

Các vấn đề liên quan