Почему мы помещаем reg-exp в список на python, например, [ ".* Py$" ]?
Я иду через следующий код, и я в замешательстве options.plugins = [ ".*py$" ]
Зачем мы помещаем reg-exp в список на python, например, [ ".* Py$" ]?
def main():
parser = OptionParser()
parser.add_option("-d", "--dist-logging", dest="dist_logging", help="use distributed logging", action="store_true", default=False)
parser.add_option("-p", "--plugins", action="append", dest="plugins", help="a reg-exp of the plugins to load", metavar=".*py$")
(options, args) = parser.parse_args()
initialize_logging(options.dist_logging)
if not options.plugins or len(options.plugins) == 0:
options.plugins = [ ".*py$" ]
1 ответ
В Python []
синтаксис обозначает список, аналогичный синтаксису массива во многих других языках. В этом случае вы видите только список, содержащий строку ".*py$"
,
Если вы посмотрите на четвертую строку вашего кода, -p
или же --plugins
создается опция, которая согласно документации:
возьмите следующий аргумент (или остаток от текущего аргумента), убедитесь, что он имеет правильный тип, и сохраните его в выбранном вами месте назначения.
В этом случае указанным местом назначения, как вы увидите, являются "плагины" - отсюда options.plugins
, Далее происходит то, что код проверяет, options.plugins
либо не существует, либо пусто. Если это так, он устанавливает его в список, содержащий одну строку "option", которая выглядит как регулярное выражение.
Документация, которую я нашел на optparse, не дает много информации о том, что она ожидает от вас options.plugins
, Однако, вообще говоря, ответ на такой вопрос "почему я назначаю X для Y" при работе с внешней библиотекой просто заключается в том, что именно этот ввод вы должны предоставить при работе с этой конкретной библиотекой. Без какого-либо другого контекста для этого кода трудно сказать намного больше об этом.