Почему мы помещаем 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" при работе с внешней библиотекой просто заключается в том, что именно этот ввод вы должны предоставить при работе с этой конкретной библиотекой. Без какого-либо другого контекста для этого кода трудно сказать намного больше об этом.

Другие вопросы по тегам