Auto-PEP8 通过将我的 lambda 转换为 def 函数来添加行,我如何禁用这种特定的自动格式?
Auto-PEP8 is adding lines by turning my lambda into def function, how do I disable this specific auto format?
我正在使用 Visual Studio 代码,PEP8 会自动格式化我的一部分代码,我刚刚学习了 lambdas,我有一个像这样的 3 行代码:
它来自 3 行 代码:
# Lambda example
divide = lambda x, y: x/y
print(divide(10, 2))
此7行代码:
# Lambda example
def divide(x, y): return x/y
print(divide(10, 2))
有谁知道如何让这个程序专门不将我的 lambda 函数转换为 def 函数?
它一直在很好地格式化我的代码,所以我不想完全禁用这个自动功能,只是为了 lambda。
这是由pycodestyle
代码触发的E731
您可以使用 --ignore=E731
禁用此功能
在配置文件中(例如 tox.ini / setup.cfg):
[pep8]
ignore=E731
有一些方法可以禁用自动将 lambda 转换为函数定义。
使用 --ignore=E731
,正如 Anthony Sottile 在 (his/her) 回答中所解释的那样。按 Ctrl+,
,搜索 autopep8
,然后添加项目 --ignore=E731
,如以下屏幕截图所示。
或者您先通过调用 pip uninstall autopep8
卸载 autopep8
,然后通过 pip install yapf
安装 yapf
。
我让其他人从这一行添加其他方法。
另一种解决方案是在 lambda 赋值周围加上 括号:
divide = (lambda x, y: x/y)
autopep8 不会用 def
.
替换上面的片段
总的来说,我会反对这样做,因为它违反了 PEP8 的建议。
然而,这有一些用例,例如如果变量是
有条件地分配给不同的功能,
当使用 def
s.
表达时,这看起来很混乱
我正在使用 Visual Studio 代码,PEP8 会自动格式化我的一部分代码,我刚刚学习了 lambdas,我有一个像这样的 3 行代码:
它来自 3 行 代码:
# Lambda example
divide = lambda x, y: x/y
print(divide(10, 2))
此7行代码:
# Lambda example
def divide(x, y): return x/y
print(divide(10, 2))
有谁知道如何让这个程序专门不将我的 lambda 函数转换为 def 函数?
它一直在很好地格式化我的代码,所以我不想完全禁用这个自动功能,只是为了 lambda。
这是由pycodestyle
代码触发的E731
您可以使用 --ignore=E731
在配置文件中(例如 tox.ini / setup.cfg):
[pep8]
ignore=E731
有一些方法可以禁用自动将 lambda 转换为函数定义。
使用
--ignore=E731
,正如 Anthony Sottile 在 (his/her) 回答中所解释的那样。按Ctrl+,
,搜索autopep8
,然后添加项目--ignore=E731
,如以下屏幕截图所示。或者您先通过调用
pip uninstall autopep8
卸载autopep8
,然后通过pip install yapf
安装yapf
。我让其他人从这一行添加其他方法。
另一种解决方案是在 lambda 赋值周围加上 括号:
divide = (lambda x, y: x/y)
autopep8 不会用 def
.
总的来说,我会反对这样做,因为它违反了 PEP8 的建议。
然而,这有一些用例,例如如果变量是
有条件地分配给不同的功能,
当使用 def
s.