Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชันระดับเฟิร์สคลาสใน Python


ในภาษาการเขียนโปรแกรมต่างๆ ออบเจ็กต์ First Class คืออ็อบเจ็กต์เหล่านั้น ซึ่งสามารถจัดการได้อย่างเท่าเทียมกัน วัตถุชั้นหนึ่งสามารถจัดเก็บเป็นโครงสร้างข้อมูลเป็นพารามิเตอร์บางตัวของฟังก์ชันอื่น ๆ เป็นโครงสร้างการควบคุม ฯลฯ เราสามารถพูดได้ว่าฟังก์ชันใน Python เป็นฟังก์ชันชั้นหนึ่ง หากรองรับคุณสมบัติทั้งหมดของวัตถุชั้นหนึ่ง

คุณสมบัติของ First Class Function คืออะไร

  • เป็นตัวอย่างของประเภท Object
  • ฟังก์ชั่นสามารถเก็บไว้เป็นตัวแปรได้
  • ส่งฟังก์ชันชั้นหนึ่งเป็นอาร์กิวเมนต์ของฟังก์ชันอื่นๆ
  • คืนค่าฟังก์ชันจากฟังก์ชันอื่น
  • จัดเก็บฟังก์ชันในรายการ ชุด หรือโครงสร้างข้อมูลอื่นๆ

ตอนแรกเราจะมาดูกันว่า Functions ใน Python สามารถใช้เป็นวัตถุได้อย่างไร ใน Python สามารถกำหนดฟังก์ชันเป็นตัวแปรได้ ในการกำหนดให้เป็นตัวแปร ฟังก์ชันจะไม่ถูกเรียก ดังนั้นวงเล็บ '()' จะไม่อยู่ที่นั่น

โค้ดตัวอย่าง

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)

ผลลัพธ์

125
125

ตอนนี้เราจะดูว่าฟังก์ชันสามารถส่งผ่านเป็นอาร์กิวเมนต์ของฟังก์ชันอื่นได้อย่างไร นี่คือตัวอย่าง

โค้ดตัวอย่าง

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)

ผลลัพธ์

[1, 8, 27, 64, 125, 216, 343, 512]

นี่คือคุณสมบัติที่สามของฟังก์ชันชั้นหนึ่ง ในกรณีนี้ เราจะคืนค่าฟังก์ชันหนึ่งจากฟังก์ชันอื่น

โค้ดตัวอย่าง

defcreate_logger(message):
   deflog():
      print('Log Message: ' + message)
   return log #Return a function
my_logger = create_logger('Hello World')
my_logger()

ผลลัพธ์

Log Message: Hello World