- 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/
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
如何在turbo c中运行c的命令行参数程序? 最佳答案 我建议您放弃 Turbo C,但因为这会分散注意力.. 您可能指的是以下两件事之一: 1) 创建一个接受命令行参数的程序: 创建一个主函数如下
我有一个打印到标准输出的 Java 程序。例如,如果输出通过管道传输到 head,则 head 完成其工作后 shell 不会立即返回,而是等待 Java 程序完成其所有工作。 所以我的问题是:如何编
我想编写一个调用 2 个函数之一的函数,具体取决于当前主要模式是否为编程模式。如何检测当前主模式是否为编程模式? 最佳答案 (if (derived-mode-p 'prog-mode) ...) 关
我在计算n个节点的二叉搜索树的个数,结果发现是加泰罗尼亚数。 现在,使用 DP,这是我的尝试。 create arr[n+1]; arr[0]=1; arr[1]=1; for(i=2;i
我是 lisp 的初学者,我需要有人向我解释 prog 表单是如何工作的,一步一步。 l1 的初始值是多少?没有? 如果列表在第一层有偶数个元素,问题输出 T,否则输出 nil。 (defun nr_
我有这个程序: -module(a). -export([add/2]). -export([add2/1]). -spec add(integer(),integer())->integer().
如果我正确理解 gcc 手册,那么选项 -print-prog-name 应该打印所用程序的名称。 但似乎这个选项只是回应了给定的论点 例子: gcc -print-prog-name=ld -->
我是 perl 和编程的新手,我刚刚发现了正则表达式和替换运算符。 #!/usr/bin/perl open(LEET, "leet.txt") or die "Can't open leet.txt
我想通过后期绑定(bind)访问 COM 库。 我怎样才能找到它的progID? Type oClassType = Type.GetTypeFromProgID("THE MISSING PROGI
我是网络编程新手。我必须用 C 语言编写一个简单的客户端/服务器程序。服务器将监听连接,客户端将连接到服务器,发送消息,并接收来自客户端的回显。我们必须使用 select() 来更新它,以同时处理从服
我正在尝试根据数组的大小自动将许多 customClass 按钮添加到我的 View 中。 创建了类并在类中调用了适当的方法,但没有显示任何内容。调试告诉我该方法按预期调用/执行(3x)。 当我将函数
这里是代码 #include #include using namespace std; template class grid { public
我有一个静态库 (.a),其中包含我在另一个程序中使用的一些有用函数。链接运行良好,找到了 lib 中的函数,但是当程序执行时,它运行不正常。另一方面,如果我直接在我的程序代码中复制/粘贴我需要的库函
当我们谈论 clojure(或其他 lisp)程序时,当引用其中声明的对象时我们应该怎么说?例如: (let [a ... 当然,如果a是一个函数,我们说function a,但是当它不是函数时我们应
我在安装 libjpeg-turbo-progs 时遇到错误,例如 sudo apt-get install libjpeg-turbo-progs 它给出的输出为 Reading package l
在 this question有人询问 ANTLR4 中 java ParseTree 类的 C# 等效项。这个答案对我来说很清楚,但我有一个相关的先前问题:这相当于 parser.prog()? 似
如果我有一个已知的 COM 库(.ocx 文件本身),在 C# 中是否有任何方法可以提取它的 CLSID 信息?基本上,当您添加对文件的引用时,我需要 Visual Studio 添加到其项目文件的文
我必须编写一个运行 fork 的代码。子项目是另一个需要完成主要任务的项目。我运行 execv() 函数,但它找不到路径。子文件位于同一台计算机的其他项目中。 第二个问题:child 是我的程序。如何
我是一个真正的 C++ 菜鸟,所以请多多包涵。 我有一个简单的程序。当我用 g++ -Wall prog.cpp -o prog 编译它然后用 ./prog 运行它时,它只是段错误。 经过一番修改后,
我是一名优秀的程序员,十分优秀!