0
0 комментариев

Кто в Python должен проверять, правильного ли типа аргументы передаются в функцию или метод:

  1. Программист вызывающий функцию обязан обеспечить правильность типа передаваемого аргумента. Функция не проверяет явно на первых этапах переданный аргумент, а просто использует его как будто он достоверно правильного типа. В процессе работы функции могут самостоятельно сгенерироваться или быть сгенерированы явно различные исключения, которые будут свидетельствовать о неправильном аргументе. Эту исключения будут описаны в docstring

  2. Функция явно на первом этапе проверяет тип переданного аргумента и генерирует исключение если что-то нет так, например, TypeError.

  3. Что-то иное

?

Например, если в функцию (для примера) мы передадим не iterable, а целое или вещественное число, то сгенерируется исключение TypeError (т.к. int и float не iterable). Но можно же в самом начале самому явно проверить, например, что переданный аргумент является итерируемым объектом и что-то сгенерировать.

def is_positive_or_zero_values(iterable):
    """Проверить все ли элементы в iterable есть числа равные или больше нуля.
    Args:
        iterable: итерируемый объект, содержащий значения на проверку.
    Returns:
        bool: True, если все элементы в iterable есть числа, которые равные или больше нуля..
              False, иначе.
    """
    if iterable:
        if is_numbers(iterable):
            return all(map(lambda x: x >= 0, iterable))
        else:
            return False
    else:
        return False

[/apcode]


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