Script Programming: Использование аргументов для разработки функций в отдельных файлах - PullRequest
0 голосов
/ 04 июня 2018

При программировании на языке сценариев (Python, Perl, Ruby или R) я стараюсь писать функции и хранить их в отдельных файлах, чтобы мой код был модульным.

Для отладки я часто ставлю аргументыфункции внутри тела функции и откомментируйте их, как только я закончу.

Кроме того, я часто помещаю вызов функции сразу после ее определения, что я также раскомментирую, когда я закончутестирование.

Итак, в итоге мой файл выглядит так

def add(a, b):
    # a = 1
    # b = 2
    c = a + b
    return c

# add(1, 2)

Есть ли более элегантный способ добиться этого?

Более того, я думаю, что обычная практикабыть удалить эти комментарии при отправке кода другим.Есть ли способ достичь этого способом, подобным JavaDoc, сохраняя «настоящие» комментарии (то есть не некомментированный код)?

Я должен упомянуть, что я часто пишу функции-оболочки вокруг вызовов функций построения в Matplotlib илиR (ggplot и т. Д.), И поскольку в этих случаях вывод представляет собой график, он не очень хорошо вписывается в среды разработки, управляемые тестами.

1 Ответ

0 голосов
/ 04 июня 2018

Правильным способом было бы написать несколько модульных тестов.
Если вы хотите, чтобы ваши тесты были очень близки к исходному коду, вы должны проверить модуль doctest , он позволяет запускать тестыразмещены прямо в комментариях к документу.
Аккуратная вещь.
Редактировать: В вашем примере это будет выглядеть так:

def add(a, b): 
    """ Returns sum of a and b

    >>> add(1, 2)
    3

    """
    c = a + b
    return c

И запустите тесты так:

python -m doctest -v yourFile.py
...