2014-02-08 3 views
2

Я не понимаю разницы между sys.argv и просто argv, Ничто в Интернете не дает мне понятий, которые я понимаю. если оба одинаковы! Когда мы используем sys.argv и когда использовать argv?Разница между sys.argv & argv?

если нет, то что sys.argv. Я знаю, что такое argv.

+1

Это звучит как один раз, когда вы импортируете sys', а в другой раз вы этого не сделали. – squiguy

+5

http://effbot.org/zone/import-confusion.htm –

+1

@Joel Cornett, Этот источник был очень информативным для меня, спасибо вам большое. –

ответ

8

Это то же самое, это просто зависит от того, как вы пишете оператор импорта.

import sys 

Если вы пишете это, то вы должны ссылаться на sys.argv.

from sys import argv 
from sys import * 

Если вы пишете либо из тех, то вы можете просто написать argv без sys. классификатора.

+0

Ясное и простое, большое спасибо. –

+0

В модуле импорта 2-го типа мы можем написать только «argv». «sys.argv» выдаст ошибку «name» sys не определен. –

+0

Стоит отметить, что форма 'from ... import *' очень редко бывает полезной: [link] (http: // stackoverflow. com/questions/2360724/in-python-what-exact-import-import) – strubbly

1

его одно и то же, например; различных аргументов, чтобы увидеть, что происходит.

from __future__ import print_function 
import sys 
print(sys.argv, len(sys.argv)) 

> python print_args.py 
['print_args.py'] 1 

> python print_args.py foo and bar 
['print_args.py', 'foo', 'and', 'bar'] 4 

> python print_args.py "foo and bar" 
['print_args.py', 'foo and bar'] 2 

> python print_args.py "foo and bar" and baz 
['print_args.py', 'foo and bar', 'and', 'baz'] 4 

Как вы можете видеть, аргументы командной строки включают имя сценария, но не имя интерпретатора. В этом смысле Python рассматривает скрипт как исполняемый файл. Если вам нужно знать имя исполняемого файла (в этом случае python), вы можете использовать sys.executable.

+0

@Charles, на самом деле нет разницы – user93097373

Смежные вопросы