Callable object là gì?

Noun Programming
Đối tượng có thể gọi

Đối tượng có thể gọi (callable object) trong lập trình máy tính là bất kỳ đối tượng (object) nào có thể được gọi (call) giống như một hàm (function).

Trong C++:

  • Con trỏ (pointer) đến hàm
  • Con trỏ đến hàm thành viên
  • Functor
  • Biểu thức lambda (lambda expression)
  • std :: function là một template class có thể chứa bất kỳ đối tượng có thể gọi nào khớp (macth) với signature của nó.

Trong C++, bất kỳ lớp (class) nào nạp chồng (overload) toán tử gọi hàm (function call operator) operator() đều có thể được gọi bằng cú pháp gọi hàm.


#include 
struct Foo
{
    void operator()() const
    {
        std::cout 

Trong Python:

Trong Python, bất kỳ đối tượng nào có phương thức (method) __call __ () đều có thể được gọi bằng cú pháp gọi hàm.


class Foo:
    def __call__(self):
        print("Called.")

foo_instance = Foo()
foo_instance()  # This will output "Called." to the screen.

Learning English Everyday