ทำความเข้าใจกับ Callable Objects ใน Python
Callable เป็นวัตถุ Python ที่สามารถเรียกได้เหมือนฟังก์ชัน มันคืออ็อบเจ็กต์ที่มีเมธอด `__call__` ซึ่งเป็นเมธอดที่ถูกเรียกเมื่ออ็อบเจ็กต์ถูกเรียกใช้
ในอีกนัยหนึ่ง อ็อบเจ็กต์ที่เรียกได้คืออ็อบเจ็กต์ที่สามารถถือเป็นฟังก์ชัน และสามารถเรียกได้ด้วยอาร์กิวเมนต์เพียงแค่ เหมือนฟังก์ชันทั่วไป ต่อไปนี้เป็นตัวอย่างของอ็อบเจ็กต์ที่เรียกได้ง่ายใน Python:
```
class MyCallable:
def __init__(self):
pass
def __call__(self, arg1, arg2):
return "Hello, world! "
```
นี่เป็นคลาสง่ายๆ ที่มีเมธอด `__call__` ที่รับสองอาร์กิวเมนต์ `arg1` และ `arg2` เมื่อเราเรียกวัตถุนี้ มันจะส่งคืนสตริง "Hello, world!"
เราสามารถเรียกวัตถุนี้เหมือนกับฟังก์ชันได้โดยใช้โอเปอเรเตอร์ `()`:
```
my_callable = MyCallable()
print(my_callable("apple ", "banana")) # ผลลัพธ์: สวัสดีชาวโลก!
```
ในตัวอย่างนี้ เราสร้างอินสแตนซ์ของคลาส `MyCallable` และเรียกมันด้วยอาร์กิวเมนต์ "apple" และ "banana" เมธอด `__call__` จะถูกเรียกพร้อมกับอาร์กิวเมนต์เหล่านี้ และจะส่งกลับสตริง "Hello, world!"