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(), следующий элемент асинхронного итератора