2

負のインデックスを持つ sys.argv で sys.argv[0] と同じ値を出力できるのはなぜですか? それも、渡された引数の数までこれを許可します。

したがって、次のような developers.google.com の hello.py への呼び出し (スクリプト名を含む 3 つの引数を使用): python hello.py Sumit Test

sys.argv[-1]、[-2]、および [-3] へのアクセスを許可し、それらすべてが argv[0] と同じ値、つまり hello.py を出力しますが、argv[-4] は予想されるエラーをスローします。

Traceback (most recent call last):
  File "hello.py", line 35, in <module>
    main()
  File "hello.py", line 31, in main
    print (sys.argv[-4])
IndexError: list index out of range

コードは次のとおりです。

import sys

# Define a main() function that prints a little greeting.
def main():

  # Get the name from the command line, using 'World' as a fallback.
  if len(sys.argv) >= 2:
    name = sys.argv[1]
  else:
    name = 'World'
  print ('Hello', name)
  print (sys.argv[-3])

# This is the standard boilerplate that calls the main() function.
if __name__ == '__main__':
  main()
4

2 に答える 2