Sobes.tech
Junior

Šta je pozivni objekat (callable-objekat) u Pythonu?

sobes.tech АИ

Одговор од АИ

U Python-u, objekat koji je pozivljiv (callable) smatra se bilo kojim objektom koji se može pozvati kao funkcija. To znači da mu se može primeniti operator poziva ().

Pozivljivi objekti uključuju:

  • Funkcije: Definisane pomoću ključne reči def.
  • Metode: Funkcije povezane sa objektom (instancom klase).
  • Klase: Poziv klase kreira novi primer te klase.
  • Objekte sa metodom __call__: Ako klasa definiše metodu __call__, primerci te klase postaju pozivljivi.
# Funkcija
def my_function():
    pass

# Metoda
class MyClass:
    def my_method(self):
        pass

# Klasa
class AnotherClass:
    pass

# Objekat sa __call__
class CallableObject:
    def __call__(self, *args, **kwargs):
        pass

# Provera pozivljivosti
import collections.abc

print(isinstance(my_function, collections.abc.Callable))
print(isinstance(MyClass().my_method, collections.abc.Callable))
print(isinstance(AnotherClass, collections.abc.Callable))
print(isinstance(CallableObject(), collections.abc.Callable))

Možete koristiti ugrađenu funkciju callable() za proveru da li je objekat pozivljiv.

# Provera pomoću callable()
print(callable(my_function))
print(callable(MyClass().my_method))
print(callable(AnotherClass))
print(callable(CallableObject()))
print(callable(123)) # Nepozivljivi objekat

Pozivljivi objekti su široko korišćeni u Python-u za implementaciju različitih obrazaca, kao što su dekoratori, povratni pozivi (callbacks) i funkcionalno programiranje.