Я продолжаю получать недопустимый синтаксис на *args
.Недопустимый синтаксис рядом с * args в Python 2.7
Вот фрагмент кода:
cmd, *args = sys.argv[1:]
globals()[cmd](*args)
Я пытаюсь передать несколько аргументов в функции в коде.
Я продолжаю получать недопустимый синтаксис на *args
.Недопустимый синтаксис рядом с * args в Python 2.7
Вот фрагмент кода:
cmd, *args = sys.argv[1:]
globals()[cmd](*args)
Я пытаюсь передать несколько аргументов в функции в коде.
Вы пытаетесь использовать Extended Iterable Unpacking, который доступен, начиная с Python 3.
Вы бы заменить его
cmd = sys.argv[1]
args = sys.argv[2:]
globals()[cmd](*args)
, чтобы заставить его работать в Python 2.
Или просто 'globals() [sys.argv [1]] (* sys.argv [2:])', если эти имена не используются повторно. – jonrsharpe
Спасибо, но когда я запустил его, я получаю Keyerror: для 'globals() [cmd] (* args)' – Analytics360
Возможно, потому что 'sys.argv [1]' не находится в ['globals()'] (https: // docs.python.org/3/library/functions.html#globals). @ Analytics360 – vaultah
'CMD , * args = sys.argv [1:] 'определенно является синтаксической ошибкой в Python 2 – vaultah
Не могли бы вы уточнить? – Analytics360
Обратите внимание, что 'globals [cmd] (* args)' предполагает, что вы совершаете что-то отвратительное - как только вы его заработаете, я предлагаю поездку в [codereview.se]. – jonrsharpe