Терминология: Argv, вызов программы.

Сообщество Hy Python -

Это основной терминологический вопрос об Argv и «вызове».

Я новичок в python и программировании.

Я читал о функции argv в модуле sys на openbookproject.com:

«Переменная argv содержит список строк, считанных из командной строки при запуске скрипта Python. Эти аргументы командной строки можно использовать для передачи информации в программу во время ее запуска. " http://openbookproject.net/thinkcs/python/english2e/ch10.html

Это кажется очень ясным из определения, но я все же хотел дважды проверить: означает ли «во время его вызова» просто «когда вы запускаете программу?» Будет ли уместно в третьем случае сказать: «Argv может передавать информацию в программу во время выполнения?»

Спасибо.


person Arie Marie Mikael Dalleis    schedule 16.11.2015    source источник


Ответы (3)


  1. Да, именно это и означает "призванный".

  2. Нет, поскольку «во время выполнения» охватывает все временное окно, в котором выполняется процесс. Совершенно верно будет сказать, что argv может передавать информацию в программу при ее вызове.

person G Fetterman    schedule 16.11.2015
comment
Привет! Большое спасибо за ответ. - person Arie Marie Mikael Dalleis; 20.11.2015

Означает ли «во время ее вызова» просто «когда вы запускаете программу?»

Да. "в то же время, когда она вызывается" подразумевает, что вы можете передавать данные в программу позже, когда она работает, т. е. вы можете использовать аргументы командной строки (sys.argv) для передачи данных в программу < em>"одновременно он вызывается" и некоторые другие средства (IPC), чтобы передать его позже, например, через стандартный ввод во время его работы.

Будет ли уместно в третьем случае сказать: «Argv может передавать информацию в программу во время выполнения?»

No.

argv определяет, как выглядит командная строка для процесса, например, argv[0] устанавливает одно из имен для процесса (другое происходит от путь к фактическому исполняемому файлу). В POSIX argv – это параметр для exec*() функций, который передается в C main(argc, argv) это точка входа для программы C.

Другими словами, argv используется для вызова (запуска/запуска) процесса, но, как @G Fetterman упомянул "во время выполнения" может относиться ко времени выполнения всего процесса, а не только к времени вызова. argv может быть известно еще до запуска процесса, а argv обычно остается неизменным после запуска процесса.

person jfs    schedule 16.11.2015

Да, это правильно. Рассмотрим следующий код testargs.py:

import sys

print(sys.argv[1])

Когда вы запускаете этот скрипт как python testargs.py banana, вы видите, что результат печатает «банан». Обратите внимание, что argv[0] — это имя скрипта, любой аргумент, указанный после него, — это argv[1], argv[2] и так далее. Для более сложного использования аргументов командной строки рассмотрите возможность использования модуля Argparse, который содержит параметры, справочные документы и другие функции.

Изменить: я рассмотрел только вызванную часть, а не вопрос времени выполнения.

person Sandwich Heat    schedule 16.11.2015
comment
Привет! Спасибо тебе за это. - person Arie Marie Mikael Dalleis; 20.11.2015