- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码可以正常工作以增加帮助文本的宽度,但不清楚。 lambda 函数是做什么的?
编辑:澄清一下,问题不是为什么 lambda 函数通常很有用,而是参数解析器初始化代码如何使用 lambda 函数?
import argparse
import sys
formatter = lambda prog: argparse.HelpFormatter(prog, width=100)
dummy_text = """Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum."""
parser = argparse.ArgumentParser(description=dummy_text, formatter_class=formatter)
parser.add_argument("-e", dest="destE", help=dummy_text)
parser.add_argument("-w", dest="destW", help=dummy_text)
args = parser.parse_args(sys.argv)
最佳答案
这是默认 HelpFormatter 类的 __init__
:
def __init__(self,
prog,
indent_increment=2,
max_help_position=24,
width=None):
ArgumentParser
类使用此函数来获取 Formatter 实例。 format_help
使用此实例来创建帮助消息。
def _get_formatter(self):
return self.formatter_class(prog=self.prog)
其中self.formatter_class
是您设置的参数。因此默认调用仅设置 prog
参数。
formatter = lambda prog: argparse.HelpFormatter(prog, width=100)
调用HelpFormatter
并添加width
参数。
这里是 lambda
的等效用法,具有更简单的函数:
In [176]: def foo(x,y):
...: return x,y
...:
In [177]: bar = lambda y: foo('x_str',y)
In [178]: bar('y_str')
Out[178]: ('x_str', 'y_str')
还有其他方法可以做同样的事情,例如
def formatter(prog):
return argparse.HelpFormatter(prog, width=100)
或 HelpFormatter
子类。
关于python - 解释 lambda argparse.HelpFormatter(prog, width),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333577/
我正在使用 click在本地模块中,我想调整帮助的显示方式: 当前使用--help输出: Usage: __main__.py [OPTIONS] COMMAND [ARGS]... Options:
此代码可以正常工作以增加帮助文本的宽度,但不清楚。 lambda 函数是做什么的? 编辑:澄清一下,问题不是为什么 lambda 函数通常很有用,而是参数解析器初始化代码如何使用 lambda 函数?
我正在使用 apache-commons-cli 来解析我的 java 程序中的命令行参数。 现在,我正试图找到一种方法来从使用帮助 中排除显示某些敏感 或调试 选项。顺便说一下,我正在使用 Help
我是一名优秀的程序员,十分优秀!