Найчастіше автоматизаторів стикаються з проблемою виведення в логи потрібної інформації. До мене звернулася колега з питанням параметризації docstrings в python. Хочу просто підвести пунктик, що можна, а що не можна робити з docstrings.
- Ви можете вказувати docstrings для модуля, класу, функції, методу
- Всі описи docstrings йдуть відразу ж після визначення якоїсь суті, тобто відразу після класу, функції і т.д.
- docstrings не можуть бути параметрізірованни
- docstrings це тільки рядок і не більше того
Для того, щоб вам продемонструвати, як працює python docstrings подивіться на цей код:
Але все ж, якщо вам наприклад, потрібно в docstrings щось замінити, то ви напевно захочете зробити це так.
На жаль, так працювати код у вас не буде і коли ви будете звертатися до docstrings, то об'єкт буде з типом None. І все ж як туди вставити потрібні дані для того, щоб використовувати docstrings в своїх потребах? Просто треба працювати з рядком docstrings і все. Приклад, вам потрібно використовувати docstrings методу для виведення чогось там в лог. Як ви це можете зробити?
Тобто ви вказуєте якусь будь-який рядок в docstrings, а потім її замінюєте на те що вам потрібно в момент виконання програми. Це звичайно неідеальний рішення тому як є ряд побічних ефектів, але якщо вам дійсно це необхідно, то можете користуватися
Удачі і хорошого python програмування!
А також можна почитати:
Дуже корисна інформація, дякую.
чи не простіше тоді
(Наприклад, якщо ми використовуємо nosetests + DDT) і імена тестів у нас динамічні.
ну можна по різному зробити, в залежності від потреби
python ліберальний мову програмування і дозволяє робити багато
приклад взагалі був для doctest, але така параметризація рідко коли буває
і у випадку з nosetests взагалі може бути і не треба
Так.
З nosetest так не працює, доводиться декораторами ...
Я б так сказав, це більше милицю, ніж фіча.
Просто я показав цей приклад, так як у деяких людей були питання.
Але ще раз скажу, в житті, це рідко застосовується.