我正在浏览以下代码,我对options.plugins = [ ".*py$" ]
感到困惑,为什么我们在python的列表中放入一个reg-exp,就像这个[“。* 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$" ]
答案 0 :(得分:0)
在Python中,[]
语法denotes a list,类似于许多其他语言中的数组语法。在这种情况下,您所看到的只是一个包含字符串".*py$"
的列表。
如果您查看代码的第四行,则会根据documentation创建-p
或--plugins
选项:
获取下一个参数(或当前参数的其余部分),确保它的类型正确,并将其存储到您选择的目的地。
在这种情况下,指定的目的地是,正如您所见,"插件" - 因此options.plugins
。再往下,发生了什么,代码正在检查options.plugins
是否存在或是否为空。如果是,则将其设置为包含一个"选项"的列表。字符串,似乎是正则表达式。
我在optparse上找到的文档并未提供有关它希望您向options.plugins
提供的内容的大量信息。但是,一般来说,这类问题的答案是"为什么我要将X分配给Y"使用外部库时,只需要提供您在使用该特定库时预期提供的输入。没有任何其他上下文的代码,很难说比它更多。