LINUX.ORG.RU

Название функции в python, которая возвращает rc выполнения

 ,


0

1

Пишу для себя, но хочу использовать более-менее общепринятые практики. Допустим, есть функция

def create_directory() -> bool:
  rc = create_directory_and_return_rc
  return rc

Она используется в основной функции

def main():
  if create_directory():
    create_file_in_directory()
    ...

Если основная задача функции create_directory не в возврате rc, а именно в выполнении чего-то (создания директории), а rc просто используется для контроля за выполнением, правильно ли называть функцию create_directory или нужно называть is_directory_created (условно) или вроде того? Главное условие, что нельзя разделить функцию на две функции (создание + проверка). В основном у меня этот вопрос возникает в связи с использованием subprocess, когда rc я могу получить только из функции, где этот subprocess используется.



Последнее исправление: GrayFox (всего исправлений: 1)

is_directory_created()

Я не настоящий программист, но я бы не стал так делать. При беглом взгляде больше на переменную похоже, а не на функцию.

И фиг поймёшь что она делает с таким названием, а create_dir чётко даёт понять что она попытается сделать.

skyman ★★★
()

питон может и возвращать кортежи и прочие на месте собранные объекты - поэтому наряду со штатными статусами можно и даигностику в соседних слотах

в чём ваще проблема?

а уж вызывающий если нужно посмотрит чё вызываемый имел уточнить по порученному заданию

qulinxao3
()
Ответ на: комментарий от skyman

При беглом взгляде больше на переменную похоже, а не на функцию.

На переменную, конечно, не похоже (есть же скобочки), зато похоже на функцию, просто возвращающую некое состояние в виде булева флажка, вроде exists(). Побочного эффекта в виде создания каталога от функции с таким названием не ожидаешь.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от GrayFox

Вроде так более наглядно, чем просто if create_directory():

Только если rc используется дальше по коду, а не только внутри условия if, в противном случае никакой «морж» не нужен.

А вот create_directory, скорее всего, можно переименовать так, чтобы было больше конкретики (например, уточнить, почему она может провалиться, типа create_directory_if_missing или что-то ещё)

annulen ★★★★★
()