Как правильно закончить скрипт на Python 3 - PullRequest
2 голосов
/ 11 июля 2019

В C ++ функция main() стандартизирована для типа int и, следовательно, должна return(0) при успешном выполнении.Кроме того, программы обычно печатают один перевод строки в конце для сброса stdout, например:

МИНИМАЛЬНЫЙ, ЗАВЕРШЕННЫЙ, ПРОВЕРЯЕМЫЙ ПРИМЕР

hello_world.cpp

#include <iostream>
int main() {
    std::cout << "hello, world" << std::endl;

    printf("\n");
    return(0);
}

привет, мир

Есть ли эквивалентный способ правильного выхода из скрипта Python?Имеет ли смысл также печатать перевод строки, а затем явно выходить с кодом 0?

hello_world.py

import sys
print("hello, world")

print('\n')
sys.exit(0)

привет, мир

Tyvm: ^)

1 Ответ

4 голосов
/ 11 июля 2019

Сценарий python заканчивается, когда больше нет кода для запуска.Программа hello world из учебника состоит из одной строки:

print("hello, world!")

Функция Python's print() эквивалентна функции println() других языков, так как по умолчанию она печатает новую строку.Вы можете изменить это поведение с помощью необязательного аргумента ключевого слова end:

print("Hello", end=" ")
print("World!")

И если вы просто хотите напечатать дополнительную строку по любой причине, вам даже не придется идти на дополнительные проблемыуказав его - вы можете просто позвонить print() без аргументов, и он выведет пустую строку.

Большинство сценариев Python, которые вы увидите, будут дополнительно иметь такую ​​функцию:

if __name__ == "__main__":
    print("hello, world!")

По сути, это фильтр, позволяющий убедиться, что текущий код запускается как сценарий, и что он не был просто импортирован каким-либо другим файлом (__name__ является встроенной переменной, котораяуказывает имя, под которым был импортирован модуль, или "__main__", если он был запущен непосредственно из командной строки и, следовательно, не был импортирован из любого места).

По умолчанию скрипт python завершается с кодом0.Вы можете использовать встроенный exit() (или sys.exit(), если хотите быть немного более безопасным - см. Превосходный комментарий @ cdarke ниже), если вы хотите выйти с другим кодом возврата (например, если ваш скрипт встречает ошибкуи вы хотите выйти изящно).В противном случае стандартная практика заключается в том, чтобы скрипт сам по себе заканчивался.

...