在 pycharm 中更改签名(重构)时强制默认变量和参数传播

Mandatory Default variables and parameter propagation while changing signature (refactoring) in pycharm

我正在对 pycharm 进行评估,并且被重构位困住了。 我想要实现的是在其中一个函数中添加一个新参数。我这里有两个问题。

  1. 每当我添加一个新参数时,它都会显示 'Default Value is missing'
  2. 传播参数似乎一直处于禁用状态

那么,默认值是强制性的吗?以及如何在所有函数调用中反映新参数?

如果有帮助请附上截图..

"Default value" 似乎不应该是 Python 意义上的 "default value":它是将根据新签名更改的调用中的文本,这些必然默认扩展签名。

这也解释了实际将该值作为 "Python default value" 与新参数一起放置的附加复选框。然后在签名预览中显示为 Python 默认值 (= ...)。

因此,如果您将文本 thing2 放在 new_param 的 "Default value" 框中,并且不选中该复选框,那么在重构之后(这是可能的)

fn1(thing1)

变成

fn1(thing1, thing2)

在调用点,fn1的重构定义变成

def fn1(param1, new_param):
    #  ...

即不涉及Python默认值。