Tôi có một từ điển có giá trị đôi khi là chuỗi và đôi khi là một hàm. Đối với các giá trị có chức năng là có một cách để thực hiện các chức năng mà không cần gõ một cách rõ ràng ()
khi khóa được truy cập?Giá trị từ điển là hàm được gọi khi khóa được truy cập, mà không sử dụng "()"
Ví dụ:
d = {1: "A", 2: "B", 3: fn_1}
d[3]() # To run function
Tôi muốn:
d = {1: "A", 2: "B", 3: magic(fn_1)}
d[3] # To run function
Tại sao không '()'? Đừng đan áo len quanh nút ... – Alexander
Đừng làm điều này. 'Rõ ràng là tốt hơn là ngầm '. Ý nghĩa trong mã của bạn là tìm kiếm một hàm và gọi nó; vì vậy mã * sẽ giống như * bạn đang làm chính xác điều đó. Là một sang một bên, trộn các loại như thế là một ý tưởng tồi; bạn cần phải kiểm tra xem bạn có một chuỗi đầu tiên không (kể từ khi bạn không thể gọi chuỗi), và điều đó làm cho cuộc sống của bạn khó khăn hơn. –
... Nhưng trên phản ánh, có vẻ như bạn thực sự có câu hỏi * thiết kế * và nên đặt câu hỏi phản ánh chặt chẽ hơn những gì bạn thực sự muốn làm. Tức là, tại sao bạn có từ điển này ở nơi đầu tiên? –