Перейти к содержимому

Callable python что это

  • автор:

Callable python что это

Функция callable() в Python: узнаём, является ли объект вызываемым

Функция callable() в Python: узнаём, является ли объект вызываемым

07 мая 2023
Оценки статьи
Еще никто не оценил статью

Функция callable() в Python предоставляет возможность определить, можно ли вызвать объект в качестве функции. Если объект может быть вызван, то callable() вернет значение True , в противном случае — False .

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

Синтаксис функции callable()

Синтаксис функции callable() прост:

callable(object) 

где:

  • object — это объект, который нужно проверить на возможность вызова.

Примеры использования callable()

Пример 1: Проверка функции

Рассмотрим следующий пример, в котором мы создадим функцию multiply , а затем проверим, является ли она вызываемой с помощью callable() :

def multiply(x, y):  return x * y print(callable(multiply)) # True 

В этом примере мы создали функцию multiply , а затем проверили ее на возможность вызова с помощью функции callable() . Функция вернула True , так как multiply является вызываемой.

Пример 2: Проверка нефункционального объекта

Рассмотрим теперь пример с нефункциональным объектом, например, строкой:

my_string = "Hello, world!" print(callable(my_string)) # False 

Здесь мы создали строку Hello, world! и проверили ее на возможность вызова. Функция callable() вернула False , так как строка не является вызываемой.

Пример 3: Проверка пользовательского класса

Также мы можем использовать функцию callable() для проверки пользовательского класса. Для этого нам нужно определить метод __call__() :

class MyClass:  def __call__(self):  print("MyClass was called")  my_object = MyClass() print(callable(my_object)) # True 

Здесь мы определили класс MyClass , который содержит метод __call__() . Метод __call__() делает класс вызываемым. Затем мы создали объект my_object этого класса и проверили его на возможность вызова с помощью функции callable() . Функция вернула True , так как объект my_object является вызываемым.

Заключение

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

Меню категорий

    Загрузка категорий.

Добро пожаловать в Блог Разработчика Владислава Александровича.

Ведется медленная, но уверенная разработка функционала сайта.

Django Core: 0.3.4 / Next.js 1.0 / UPD: 05.06.2023

Вызываемые объекты

Как известно функции в Python это обычные объекты, которые можно передавать в другие функции, возвращать из других функций и т. п., поэтому для них тоже есть свой тип Callable :

from typing import Callable def mysum(a: int, b: int) -> int: return a + b def process_operation(operation: Callable[[int, int], int], a: int, b: int) -> int: return operation(a, b) print(process_operation(mysum, 1, 5)) # 6 

Здесь для аргумента operation функции process_operation проставлен тип Callable[[int, int], int] . Здесь [int, int] — это типы аргументов функции operation , получается, что у этой функции должно быть два аргумента и они оба должны иметь тип int . Последний int в определении типа Callable[[int, int], int] обозначает тип возвращаемого функцией значения.

Callable (вызываемый)

Типы, поддерживающие возможность их вызова в качестве функции.

Примеры сущностей, поддерживающих вызов:

  • Встроенные и пользовательские функции;
  • Встроенные и пользовательские методы;
  • Функции-генераторы;
  • Классы (как классические так и нового стиля);
  • Экземпляры классов.

Вызов всегда сопровождается возвратом какого-либо значения (возможно None) за исключением случаев, когда возбуждается исключение.

# Вызов общей функции len()
# с передачей списка в качестве единственного аргумента
# и возвратом вычисленной длины списка.
len([1, 2, 3]) # 3

Детали вычисления значения зависят от типа вызываемого объекта.

Синонимы поиска: Callable (вызываемый), вызываемый, вызываемые, вызов

Статьи раздела
def (функция/метод) Последовательность инструкций, возвращающая некое значение.
Аргументы вызова Вызов может осуществляться при помощи позиционных и/или именованных а…
Параметры вызываемых объектов Именованные сущности в определениях типов, поддерживающих вызов, опре…

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

Функция callable() возвращает True , если указанный объект вызываемый, в противном случае она возвращает значение False .

Обратите внимание, что объект будет вызываемый, если в нем определен метод __call__() .

Дополнительно смотрите «Утиная типизация ‘Duck Typing’ в Python», где один из разделов объясняет поведение, которое свойственно объектам callable в языке Python.

Пример проверки на вызываемость объекта.

class Foo: def __call__(self): print('called') >>> callable(Foo()) # True # проверим, можно ли вызвать переменную >>> x = 5 >>> callable(x) #False 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция abs(), абсолютное значение числа
  • Функция all(), все элементы True
  • Функция any(), хотя бы один элемент True
  • Функция ascii(), преобразует строку в ASCII
  • Функция bin(), число в двоичную строку
  • Класс bool(), логическое значение объекта
  • Функция breakpoint(), отладчик кода
  • Класс bytearray(), преобразует в массив байтов
  • Класс bytes(), преобразует в строку байтов
  • Функция callable(), проверяет можно ли вызвать объект
  • Функция chr(), число в символ Юникода
  • Класс classmethod, делает функцию методом класса
  • Функция compile() компилирует блок кода Python
  • Класс complex(), преобразует в комплексное число
  • Функция delattr(), удаляет атрибут объекта
  • Класс dict() создает словарь
  • Функция dir(), все атрибуты объекта
  • Функция divmod(), делит числа с остатком
  • Функция enumerate(), счетчик элементов последовательности
  • Функция eval(), выполняет строку-выражение с кодом
  • Функция exec(), выполняет блок кода
  • Функция filter(), фильтрует список по условию
  • Класс float(), преобразует в вещественное число
  • Функция format(), форматирует значение переменной
  • Класс frozenset(), преобразует в неизменяемое множество
  • Функция getattr(), значение атрибута по имени
  • Функция globals(), переменные глобальной области
  • Функция hasattr(), наличие атрибута объекта
  • Функция hash(), хэш-значение объекта
  • Функция help(), справка по любому объекту
  • Функция hex(), число в шестнадцатеричную строку
  • Функция id(), идентификатор объекта
  • Функция input(), ввод данных с клавиатуры
  • Класс int(), преобразует в тип int
  • Функция isinstance(), принадлежность экземпляра к классу
  • Функция issubclass(), проверяет наследование класса
  • Функция iter(), создает итератор
  • Функция len(), количество элементов объекта
  • Класс list(), преобразовывает в список
  • Функция locals(), переменные локальной области
  • Функция map(), обработка последовательности без цикла
  • Функция max(), максимальное значение элемента
  • Класс memoryview(), ссылка на буфер обмена
  • Функция min(), минимальное значение элемента
  • Функция next(), следующий элемент итератора
  • Класс object(), возвращает безликий объект
  • Функция oct(), число в восьмеричную строку
  • Функция open(), открывает файл на чтение/запись
  • Функция ord(), число символа Unicode
  • Функция pow(), возводит число в степень
  • Функция print(), печатает объект
  • Класс property(), метод класса как свойство
  • Класс range(), генерирует арифметические последовательности
  • Функция repr(), описание объекта
  • Функция reversed(), разворачивает последовательность
  • Функция round(), округляет число
  • Класс set(), создает или преобразовывает в множество
  • Функция setattr(), создает атрибут объекта
  • Класс slice(), шаблон среза
  • Функция sorted(), выполняет сортировку
  • Декоратор staticmethod(), метод класса в статический метод
  • Класс str(), преобразует объект в строку
  • Функция sum(), сумма последовательности
  • Функция super(), доступ к унаследованным методам
  • Класс tuple(), создает или преобразует в кортеж
  • Класс type(), возвращает тип объекта
  • Функция vars(), словарь переменных объекта
  • Функция zip(), объединить элементы в список кортежей
  • Функция __import__(), находит и импортирует модуль
  • Функция aiter(), создает асинхронный итератор
  • Функция anext(), следующий элемент асинхронного итератора

Добавить комментарий

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