Функция callable() в Python — проверка возможности вызова объекта

В этом уроке вы узнаете о вызываемых объектах Python и о том, как использовать функцию callable() для проверки возможности вызова объекта.

Содержание

Введение в вызываемые объекты Python

Если вы можете вызвать объект с помощью оператора (), этот объект является вызываемым:

object()

Например, функции и методы являются вызываемыми. В Python многие другие объекты также являются вызываемыми.

Вызываемый объект всегда возвращает значение.

Чтобы проверить, является ли объект вызываемым, можно использовать встроенную функцию callable:

callable(object)

Вызываемая функция принимает object. Она возвращает True, если объект является вызываемым. В противном случае она возвращает False.

Примеры вызываемых функций Python

Ниже показаны различные типы вызываемых объектов в Python.

1) Встроенные функции

Все встроенные функции являются вызываемыми. Например, print, len, even callable.

print(callable(print))
print(callable(len))
print(callable(callable))

Выход:

True
True
True

2) Пользовательские функции

Все пользовательские функции, созданные с использованием def или лямбда-выражений, могут быть вызваны. Например:

def add(a, b):
    return a + b


print(callable(add))  # True
print(callable(lambda x: x*x))  # True

Выход:

True 
True

3) Встроенные методы

Встроенные методы, такие как a_str.upper, a_list.append, могут быть вызваны. Например:

str = 'Python Callable'
print(callable(str.upper))  # True

Выход:

True

4) Классы

Все классы являются вызываемыми. Когда вы вызываете класс, вы получаете новый экземпляр класса. Например:

class Counter:
    def __init__(self, start=1):
        self.count = start

    def increase(self):
        self.count += 1

    def value(self):
        return self.count

5) Методы

Методы — это функции, привязанные к объекту, поэтому их также можно вызывать. Например:

print(callable(Counter.increase))  # True

Выход:

True

6) Экземпляры класса

Если класс реализует метод __call__, все экземпляры класса могут быть вызваны:

class Counter:
    def __init__(self, start=1):
        self.count = start

    def increase(self):
        self.count += 1

    def value(self):
        return self.count

    def __call__(self):
        self.increase()


    counter = Counter()
    counter()

    print(callable(counter))  # True

Выход:

True

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *