Я пытаюсь получить параметры из командной строки, чтобы инициализировать следующий классОбработка аргументов командной строки в Python
import sys
class Test(object):
def __init__(self):
for item in sys.argv:
if item.startswith("-Username"):
self.Username = item.split("Username=", 1)[1]
if item.startswith("-SessionID"):
self.sessionID = item.split("SessionID=", 1)[1]
if item.startswith("-appName"):
self.appName = item.split("appName=", 1)[1]
def run(self):
msg = '''Username {0} with SessionID {1} is using the {2} app.'''.format(self.Username, self.SessionID, self.appName)
print msg
if __name__ == '__main__':
Test().run()
В командной строке я выполняю:
python test.py -Username=AAA, -SessionID=223, -appName=ABC
, который дает следующее ошибка:
AttributeError: 'Test' object has no attribute 'Username'.
Интересно, почему? Любая помощь приветствуется.
Он будет иметь только «self.Username», если item.startswith («- Username») '. Это не установлено иначе. –
Эта проблема не связана с обработкой аргументов командной строки. –
Возможно, у вас есть проблема с конкретным случаем? Там sessionID и SessionID, кроме того, все работает для меня. – danielfranca