时间:2021-05-22
目前用于Python的格式化程序(如autopep8和pep8ify)都用于删除代码中的lint错误。这有很明显的局限性。
YAPF采用了不同的方法,基于Daniel Jasper开发的“'clang-format”。从本质上来说,该算法取走代码并重新排版,以符合样式指南的最佳格式,即便原始代码没有违反样式指南。这个想法也是类似于Go编程语言的gofmt工具。
其最终目标是让YAPE所产生的代码可以与程序员所写的代码一样好(前提是程序员遵循样式指南),它取代了一些维护代码的苦差。
安装
可以直接通过pip进行安装:
如果你打算使用YAPF作为一个命令行工具,而不是一个库,那么安装是没有必要的。通过Python解释器,YAPF可以作为一个目录运行。如果你克隆/解压YAPF到DIR,可以这么运行:
YAPF的使用
安装完成之后,就可以直接在命令行中使用了。 以下是yapf的命令行参数:
格式样式
使用YPF的格式样式是可以配置的,并且有许多“knobs”可用于调整YAPF是如何做格式的。(查看style.py模块)
为了控制样式,运行带有--style的YAPF。它接受一个预定义的样式(例如pep8或google)——一个通往配置文件(能指定所需样式或一个键/值对的字典)的途径。
配置文件是一个简单的键=值对的列表(区分大小写),拥有一个【style】,例如:
当然也可以通过字典在命令行上做出同样的事情,例如:
--style='{basedonstyle: google, indent_width: 4}'
这将用google作为基础样式,并修改成拥有4个空格缩进。
例子
以下是一段非常ugly的代码:
利用yapf将它格式化:
x = {'a': 37, 'b': 42, 'c': 927}y = 'hello ' 'world'z = 'hello ' + 'world'a = 'hello {}'.format('world')class foo(object): def f(self): return 37 * -+2 def g(self, x, y=42): return ydef f(a): return 37 + -+a[42 - x:y ** 3]好看很多!
另外,YAPF在格式化的时候仍然有一些问题。如:
BAZ = { [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]}当有一大段内容的时候,我们都习惯分行排列,因为这显然更方便我们阅读。但是,使用YAPF格式化后:
BAZ = {[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]}遇到这种情况,YAPF也提供了解决的方法,就是在代码段的后面加上: # yapf: disable
BAZ = { [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]} # yapf: disable所以,YAPF是一个非常有用的工具,它可以帮助你将代码变得更加一致、更加容易阅读并且Pythonic。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python的代码错误检查通常用pep8、pylint和flake8,自动格式化代码通常用autopep8、yapf、black。这些工具均可以利用pip进行安
硬盘,要经过分区、格式化后才可以使用,现在可以用xp安装光盘带的分区格式化工具来对硬盘进行分区,其功能要比98的fdisk强大许多,同时是交互式的图形界面。在用
1394接口的电脑上,等上几分钟,然后再尝试打开iPod。Mac上使用抹掉磁盘或Windows下把移动磁盘格式化成32位分区格式,然后可以用系统的格式化工具格式
有些U盘在电脑上可以识别,但无法读写。利用Windows自带的格式化工具对其在格式化时,显示“文件系统是raw”,无法完成格式化。MFo
BeautifyPHP,很好用的php格式化工具http://ment){if(($a[$i]=="="OR$a[$i]==""OR$a[$i]=="*")AN