Tại sao các hàm được coi là đối tượng hạng nhất trong python

Trong Python, các hàm là đối tượng hạng nhất [công dân hạng nhất cũng vậy. ]. Các nhà lý thuyết ngôn ngữ lập trình đã xác định một số tiêu chí cho đối tượng hạng nhất của ngôn ngữ lập trình. Một “đối tượng hạng nhất” là một thực thể chương trình có thể được

  • được tạo ra trong thời gian chạy
  • có thể được gán cho một biến
  • có thể được truyền dưới dạng đối số chức năng
  • có thể được trả về từ một chức năng

Hãy xem xét các tiêu chí này cho các hàm Python

1. Sáng tạo trong thời gian chạy

Ở đây, chúng ta có một hàm đệ quy tên là print_inversely sẽ in từ n xuống 0. Số lần gọi của hàm print_inversely phụ thuộc vào giá trị của n. Tùy thuộc vào giá trị của n, nó tự gọi. Trước khi chạy chương trình, nó không thể quyết định về hành vi, số lượng cuộc gọi, v.v. Tại thời điểm chạy, nó tự gọi đệ quy tùy thuộc vào giá trị của n. Nói cách khác, “ở đây chúng ta đang tạo và gọi hàm trong thời gian chạy”

Trong Python, hàm cũng là đối tượng

Điều này mô tả rằng, hàm print_inversely là một thể hiện của lớp hàm

2. Gán cho một biến

Ở đây chúng tôi đang gán hàm print_inversely cho biến

def toy[text]:
    return text.upper[] + '!'

toy['hello']

HELLO!
5 của chúng tôi và gọi hàm thông qua biến

3. Truyền hàm dưới dạng đối số

Hàm n0 lấy một hàm làm đối số và gọi nó bằng đầu vào của người dùng. Ở đây, chúng tôi đang chuyển print_inversely đến n0 làm đối số

4. Hàm trả về từ hàm

Hàm n3 trả về một hàm tùy thuộc vào giá trị của n. Nếu chúng tôi vượt qua n4 thì nó sẽ trả về tham chiếu của n5 nếu không nó sẽ trả về tham chiếu của n6. Ở đây, một hàm trả về một hàm khác

Ghi chú. Khi một hàm lấy một hàm làm đối số hoặc trả về một hàm khác thì hàm đó được gọi là hàm bậc cao

Python có một tính năng duy nhất trong số các ngôn ngữ lập trình phổ biến - chức năng của nó là các đối tượng hạng nhất

Hàm trong Python là một loại đối tượng đặc biệt

Hàm là một đối tượng có tên, có thể gọi được như một phương thức hoặc cách triển khai phương thức trong C++, Java hoặc C#

Các chức năng là các chức năng mà bạn đã quen với các ngôn ngữ khác. Trong Python, hàm chỉ là hàm

Bạn có thể định nghĩa một hàm ở bất kỳ đâu trong chương trình Python của mình, giống như bất kỳ loại đối tượng nào khác, sử dụng từ khóa def theo sau là tên hàm và danh sách các đối số trong ngoặc đơn

Code Example: 

def add[x, y]: 
     return x + y  

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Các chức năng của Python là các đối tượng hạng nhất

Bạn có thể gán chúng cho các biến, lưu trữ chúng trong cấu trúc dữ liệu và chuyển chúng làm đối số cho các hàm khác và thậm chí trả về chúng dưới dạng giá trị từ các hàm khác

def toy[text]:
    return text.upper[] + '!'

toy['hello']

HELLO!

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Chức năng là đối tượng

Tất cả dữ liệu trong chương trình Python được biểu diễn bằng các đối tượng hoặc quan hệ giữa các đối tượng

Những thứ như chuỗi, danh sách, mô-đun và hàm
đều là đối tượng.

Không có gì đặc biệt về hàm trong
Python. Chúng cũng chỉ là đồ vật.

Vì hàm đồ chơi là một đối tượng trong Python nên bạn có thể gán nó cho một biến khác,

giống như bất kỳ đối tượng nào khác

play = toy

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Dòng này không gọi hàm

Nó lấy đối tượng hàm được tham chiếu
bởi toy và tạo một tên thứ hai, play, trỏ tới nó.

Bây giờ bạn cũng có thể thực thi cùng một đối tượng chức năng cơ bản bằng cách gọi play

def toy[text]:
    return text.upper[] + '!'

play = toy

play['toy story']

"TOY STORY!"

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Điều gì xảy ra dưới mui xe

Các đối tượng hàm và tên của chúng là hai mối quan tâm riêng biệt.
Đây là bằng chứng khác. Bạn có thể xóa tên gốc của chức năng toy.

Vì tên khác play vẫn trỏ đến hàm bên dưới nên bạn vẫn có thể gọi hàm thông qua nó

>>> del toy
>>> toy['hello?']

NameError: "name 'toy' is not defined"

>>> play['hey']
'HEY!'

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Nhân tiện, Python đính kèm một mã định danh chuỗi cho mọi chức năng tại thời điểm tạo cho mục đích gỡ lỗi

Bạn có thể truy cập mã định danh nội bộ này bằng thuộc tính tên

>>> play.__name__
'toy'

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Bây giờ, trong khi tên của hàm vẫn là đồ chơi không ảnh hưởng đến cách bạn có thể truy cập đối tượng hàm từ mã của mình

Định danh tên chỉ là một công cụ hỗ trợ sửa lỗi

Một biến trỏ đến một hàm và chính hàm đó thực sự là hai mối quan tâm riêng biệt

Chức năng có thể được lưu trữ trong cấu trúc dữ liệu

Vì các chức năng là công dân hạng nhất nên bạn có thể lưu trữ chúng trong cấu trúc dữ liệu, giống như bạn có thể làm với các đối tượng khác

Tại sao các chức năng được coi là đối tượng hạng nhất?

Một ngôn ngữ lập trình được cho là có các hàm Hạng nhất khi các hàm trong ngôn ngữ đó được coi như bất kỳ biến nào khác . Ví dụ: trong một ngôn ngữ như vậy, một hàm có thể được truyền dưới dạng đối số cho các hàm khác, có thể được hàm khác trả về và có thể được gán làm giá trị cho một biến.

Đối tượng hạng nhất trong Python là gì?

Đối tượng hạng nhất là một thực thể có thể được tự động tạo, hủy, truyền cho hàm, trả về dưới dạng giá trị và có tất cả các quyền như các biến khác trong lập trình . .

Các đối tượng hạng nhất có nghĩa là gì?

đối tượng hạng nhất [số nhiều đối tượng hạng nhất] [lập trình, ngôn ngữ] Một thực thể có thể được xây dựng trong thời gian chạy, được truyền dưới dạng tham số, được trả về từ một hàm . .

Đối tượng hạng nhất trong lập trình chức năng là gì?

Đối tượng hạng nhất là một thực thể trong ngôn ngữ lập trình có thể. Xuất hiện trong một biểu thức . Được gán cho một biến . Dùng làm đối số . Được trả về bởi lệnh gọi hàm .

Chủ Đề