Trong các ngôn ngữ lập trình khác nhau, các đối tượng First Class là các đối tượng đó, có thể được xử lý thống nhất. Các đối tượng Lớp đầu tiên có thể được lưu trữ dưới dạng Cấu trúc dữ liệu, dưới dạng một số tham số của một số hàm khác, như cấu trúc điều khiển, v.v. Chúng ta có thể nói rằng một hàm trong Python là Hàm lớp đầu tiên, nếu nó hỗ trợ tất cả các thuộc tính của đối tượng Lớp đầu tiên.
Thuộc tính của Hàm hạng nhất là gì?
- Đây là một phiên bản của loại Đối tượng
- Các hàm có thể được lưu trữ dưới dạng biến
- Chuyển Hàm First Class làm đối số của một số hàm khác
- Trả lại các chức năng từ chức năng khác
- Lưu trữ các Hàm trong danh sách, tập hợp hoặc một số cấu trúc dữ liệu khác.
Đầu tiên, chúng ta sẽ xem các Hàm trong Python có thể được sử dụng như một đối tượng như thế nào. Trong Python, một hàm có thể được gán dưới dạng biến. Để gán nó là biến, hàm sẽ không được gọi. Vì vậy, dấu ngoặc đơn '()' sẽ không ở đó.
Mã mẫu
def cube(x): return x*x*x res = cube(5) print(res) my_cube = cube #The my_cube is same as the cube method res = my_cube(5) print(res)
Đầu ra
125 125
Bây giờ chúng ta sẽ xem các hàm có thể được chuyển như thế nào dưới dạng đối số của các hàm khác. Đây là ví dụ.
Mã mẫu
def cube(x): return x*x*x defmy_map(method, argument_list): result = list() for item in argument_list: result.append(method(item)) return result my_list = my_map(cube, [1, 2, 3, 4, 5, 6, 7, 8]) #Pass the function as argument print(my_list)
Đầu ra
[1, 8, 27, 64, 125, 216, 343, 512]
Đây là thuộc tính thứ ba của Hàm hạng nhất. Trong trường hợp này, chúng tôi sẽ trả về một hàm từ một hàm khác.
Mã mẫu
defcreate_logger(message): deflog(): print('Log Message: ' + message) return log #Return a function my_logger = create_logger('Hello World') my_logger()
Đầu ra
Log Message: Hello World