Computer >> Máy Tính >  >> Lập trình >> Python

Các hàm First Class trong Python

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