Tôi là một người mới bắt đầu trăn, và tôi vừa học được một kỹ thuật liên quan đến từ điển và chức năng. Cú pháp rất dễ và có vẻ như là một điều tầm thường, nhưng cảm giác trăn của tôi đang nhói lên. Một cái gì đó cho tôi biết đây là một khái niệm sâu sắc và rất sâu sắc và tôi không hoàn toàn nắm bắt được tầm quan trọng của nó. Ai đó có thể đặt tên cho kỹ thuật này và giải thích làm thế nào / tại sao nó hữu ích?
Kỹ thuật này là khi bạn có một từ điển python và một chức năng mà bạn định sử dụng nó. Bạn chèn một phần tử phụ vào dict, có giá trị là tên của hàm. Khi bạn sẵn sàng gọi hàm, bạn sẽ thực hiện cuộc gọi một cách gián tiếp bằng cách tham chiếu đến phần tử dict, chứ không phải hàm theo tên.
Ví dụ tôi đang làm việc là từ Tìm hiểu Python theo cách khó, 2nd Ed. (Đây là phiên bản có sẵn khi bạn đăng ký qua Udemy.com ; đáng buồn là phiên bản HTML miễn phí trực tiếp hiện tại là Ed 3 và không còn bao gồm ví dụ này nữa).
Để diễn dải:
# make a dictionary of US states and major cities
cities = {'San Diego':'CA', 'New York':'NY', 'Detroit':'MI'}
# define a function to use on such a dictionary
def find_city (map, city):
# does something, returns some value
if city in map:
return map[city]
else:
return "Not found"
# then add a final dict element that refers to the function
cities['_found'] = find_city
Thì các biểu thức sau là tương đương. Bạn có thể gọi hàm trực tiếp hoặc bằng cách tham chiếu phần tử dict có giá trị là hàm.
>>> find_city (cities, 'New York')
NY
>>> cities['_found'](cities, 'New York')
NY
Ai đó có thể giải thích tính năng ngôn ngữ này là gì không, và có thể nói đến đâu để chơi trong lập trình "thực"? Bài tập đồ chơi này đủ để dạy tôi cú pháp, nhưng không đưa tôi đến đó.