使用 Black 的Python代码格式化
编写格式良好的代码非常重要,小程序很容易理解,但随着程序变得复杂,它们变得越来越难以理解。在某些时候,您甚至无法理解您编写的代码。为了避免这种情况,需要以可读格式编写代码。黑色在这里发挥作用,黑色确保代码质量。
什么是黑色?
pycodestyle 或 flake8 之类的 Linters 显示您的代码是否符合 PEP8 格式,这是官方Python样式指南。但问题是它给开发人员带来了修复这种格式样式的负担。 Black 在这里发挥作用,不仅报告格式错误,而且修复它们。
引用项目自述文件:
Black is the uncompromising Python code formatter. By using it, you agree to cede control over minutiae of hand-formatting. In return, Black gives you speed, determinism, and freedom from pycodestyle nagging about formatting. You will save time and mental energy for more important matters.
注意: Black 可以轻松地与许多编辑器集成,例如 Vim、Emacs、VSCode、Atom 或 GIT 等版本控制系统。
安装和使用黑色:
黑色需要安装了 pip 的Python 3.6.0+ :
$ pip install black
使用黑色非常简单。在终端中运行以下命令。
$ black [file or directory]
这将使用黑色代码样式重新格式化您的代码。
示例 1:让我们创建一个未格式化的文件名“sample.py”,我们希望使用黑色对其进行格式化。下面是实现。
Python3
def is_unique(
s
):
s = list(s
)
s.sort()
for i in range(len(s) - 1):
if s[i] == s[i + 1]:
return 0
else:
return 1
if __name__ == "__main__":
print(
is_unique(input())
)
Python3
def is_unique(s):
s = list(s)
s.sort()
for i in range(len(s) - 1):
if s[i] == s[i + 1]:
return 0
else:
return 1
if __name__ == "__main__":
print(is_unique(input()))
Python3
def function(name, default=None, *args, variable="1123", a, b, c, employee, office, d, e, f, **kwargs):
"""This is function is created to demonstrate black"""
string = 'GeeksforGeeks'
j = [1,
2,
3]
Python3
def function(
name,
default=None,
*args,
variable="1123",
a,
b,
c,
employee,
office,
d,
e,
f,
**kwargs
):
"""This is function is created to demonstrate black"""
string = "GeeksforGeeks"
j = [1, 2, 3]
创建此文件后,运行以下命令。
输出文件:
Python3
def is_unique(s):
s = list(s)
s.sort()
for i in range(len(s) - 1):
if s[i] == s[i + 1]:
return 0
else:
return 1
if __name__ == "__main__":
print(is_unique(input()))
在上面的例子中,两者都是相同的片断代码,但使用黑色后,它被格式化,因此易于理解。
示例 2:让我们创建另一个包含以下代码的文件“sample1.py”。
Python3
def function(name, default=None, *args, variable="1123", a, b, c, employee, office, d, e, f, **kwargs):
"""This is function is created to demonstrate black"""
string = 'GeeksforGeeks'
j = [1,
2,
3]
在终端中再次编写上述命令后。
输出文件:
Python3
def function(
name,
default=None,
*args,
variable="1123",
a,
b,
c,
employee,
office,
d,
e,
f,
**kwargs
):
"""This is function is created to demonstrate black"""
string = "GeeksforGeeks"
j = [1, 2, 3]