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)

правильно ли называть функцию [которая создаёт директорию] create_directory

сойдет

или нужно называть is_directory_created

точно нет. ensure_directory_exists?

Надеюсь ты там makedirs не изобретаешь.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Не изобретаю. Это просто для примера.

GrayFox
() автор топика

is_directory_created()

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

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

skyman ★★★★
()

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

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

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

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

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

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

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

Похоже на isfile, isdir, islink, isdigit, isfloat, isnumber и т.д.

nionio35
()

хочу использовать более-менее общепринятые практики

from pathlib import Path

def create_file_in_directory(path_to_file):
    Path(path_to_file).mkdir(parents=True)
    ...
vvn_black ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Моржовый оператор… Понятно. Вроде так более наглядно, чем просто if create_directory():. Так и буду писать, спасибо.

GrayFox
() автор топика
Ответ на: комментарий от GrayFox

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

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

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

annulen ★★★★★
()

Стоит ещё посмотреть на исключения, если эта rc несёт информацию об успешности завершения операции.

Begemoth ★★★★★
()
Ответ на: комментарий от GrayFox

Я бы и коды возврата бы завернул в собственные исключения

Begemoth ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.