Установка глобальных переменных из модуля:
Я попытался что-то подобное, пытаясь упростить мою версию argparse, чтобы она позволяла минимальное дублирование имен, поддерживать нечувствительные к регистру множественные символы символов, но все же устанавливать глобальные переменные со смешанными флагами. Единственное решение, с которым я мог придумать, - это вернуть список операторов, который я мог бы выполнить. Мои попытки выполнить команду в модуле не увенчались успехом. Мой пример:
Самотестирование
def main():
print "Some tests with provided args"
One = 1
Two = 2
Three = 3
prs = ArgumentParserCI(description='process cmdline args')
prs.add_argument('One')
prs.add_argument('Three')
cmdlineargs = ['-one', 'one', '--thr', "III"]
argsdict, unknownargs, execlist = prs.parse_args(cmdlineargs)
exec(execlist)
print("cmdlineargs:", cmdlineargs)
print (One, Two, Three)
if __name__ == "__main__":
main()
Распечатка:
Some tests with provided args
('cmdlineargs:', ['-one', 'one', '--thr', 'III'])
('one', 2, 'III')
Зачем вам это нужно? Почему вы не используете словарь? Это было бы намного чище. –
Точно так же, как наблюдение на стороне: в течение более десяти лет написания Python, я никогда - буквально не один раз - когда-либо нужно было делать что-то отдаленно близко к этому. –