项目的Python代码有很多函数定义和调用,例如:
def some_function(a, b="", c=0, d=None, e="something"):
# whatever
pass
some_function("a", "b", 1, e="something else")
这是非常毛茸茸的(不好的做法 - 缺少上下文等),我想自动将其更改为:
some_function(a="a", b="b", c=1, e="something else")
(好吧,在某些情况下,第一个位置参数可能保持原样)
很多情况下,关键字参数的顺序不同,因此也可以按照函数定义顺序来排列:
def some_method(self, a, b=1, c=2): pass
obj.some_method(a, c=12, b=0) -> obj.some_method(a, b=0, c=12)
PyCharm 及其重构 > 更改签名有什么帮助吗?
嗯,PyCharm 会对 kw 参数进行重新排序,但不会将位置参数更改为关键字参数(在调用中)。这只是当前的限制还是我缺少某种自动执行此操作的方法?
最佳答案
因为 Python 3 的 keyword-only arguments现在 PyCharm 支持,您可以通过在 Changesignature
对话框中添加 *
作为第一个参数来执行上述重构。
关于python - PyCharm:这种自动签名重构可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47978893/