我正在使用Python 2.7开发我的第一个项目。我们来自Java背景,我们的第一直觉是以Java式方式编写python代码。但现在我们正在努力尽可能地适应。到目前为止,我们正在使用 pylint 来调整我们的代码。
现在我一直遇到 pylint 的情况。每次我使用**data
之类的内容将值传递给方法时,我都会收到关于使用*
或**
的 pylint 警告。现在我的问题是:使用**
编写python代码的样式是不是很糟糕?使用它有什么标准替代品吗?
此致 波格丹
答案 0 :(得分:4)
**
可能会引入一些棘手的bug,因为它会接受任何东西。通常你想要的代码在被调用时会中断。这是一个例子:
def dostuff(**kwargs):
force = 3
if kwargs.get('reallyhard', False):
force += 5
# and so on
# Now you need luck to find this bug ...
dostuff(fancy=True, funky=False, realyhard=True)
你不应该使用**
只是因为你懒得输入参数名称。但这并不总是可行的,所以也有合法用途。
答案 1 :(得分:2)
几乎不可能使用静态分析来验证**
生成的参数是否全部有效,但如果它是唯一合适的机制,那么它们一定要使用它。
答案 2 :(得分:2)
**
非常适合它的目的:将参数转发给其他函数。你绝对可以做一些会降低你的代码可读性的坏事,但这本身并不算错误。