Как использовать функцию callable() в Python

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

Python callable()

Метод callable() принимает только один аргумент — object, и возвращает одно из двух значений (True, если объект кажется вызываемым).

Синтаксис

Метод callable() возвращает следующие логические значения:

  • True: если объект кажется вызываемым.
  • False: если объект не вызывается.

Может быть несколько случаев, когда Python callable() возвращает true, но вызов объекта терпит неудачу. Но если это так и он возвращает False, вызов объекта никогда не будет успешным.

См. следующий пример кода.

Здесь мы видим в первом случае, когда объект передается в метод callable(), и он возвращает True. Это так, потому что 11 является объектом вызываемой функции StrangerThings (что может быть не во всех случаях).

Во втором случае jane не является вызываемым объектом, поэтому результатом будет False.

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

См. следующий пример кода.

Вывод:

Экземпляр класса App кажется вызываемым.

Когда Object Выглядит вызываемым, но не вызывается

Хорошо, давайте рассмотрим сценарий, в котором объект кажется вызываемым, но на самом деле он не вызывается.

Пример:

Вывод:

Итак, он возвращает True, но не вызывается.

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

Каждый раз, когда вы определяете функцию, Питон создает вызываемый объект. В следующем примере вы можете определить функцию func следующими способами:

Метод callable() возвращает True, предполагая, что класс App является вызываемым, но экземпляр App не является callable() и возвращает ошибку времени выполнения.

Встроенный метод callable() проверяет, является ли аргумент:

  1. Экземпляр класса с методом __call__.
  2. Это тип, который указывает возможность вызова, например, в функциях, методах и т. д., или имеет ненулевой элемент tp_call(c struct).
  3. Если объект является экземпляром некоторого класса, он может быть вызван, если у него есть атрибут __call__.
  4. В противном случае объект x может быть вызван, если x->ob_type->tp_call != NULL.

Вы всегда можете использовать встроенную callable функцию, чтобы определить, является ли данный объект вызываемым, или, что еще лучше, просто вызвать его и позже поймать TypeError . callable удален в Python 3.0 и 3.1, используйте callable = lambda o: hasattr(o, ‘__call__’) или isinstance(o, collections.Callable) .

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python