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

在pycharm中更改签名(重构)时强制默认变量和参数传播,pycharm,Pycharm,我正在对pycharm进行评估,并且一直在进行重构。 我想要实现的是在其中一个函数中添加一个新参数。我这里有两个问题 每当我添加一个新参数时,它都会显示“缺少默认值” 传播参数似乎一直处于禁用状态 那么,默认值是强制性的吗?我如何在所有函数调用中反映新参数 附加屏幕截图(如果有帮助的话)。。 在Python意义上,“Default value”似乎并不意味着“Default value”:调用中要放入的文本将根据新签名进行更改,这些文本必然在扩展签名上默认 这也解释了额外的复选框,用于实际将该值

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

  • 每当我添加一个新参数时,它都会显示“缺少默认值”
  • 传播参数似乎一直处于禁用状态
  • 那么,默认值是强制性的吗?我如何在所有函数调用中反映新参数

    附加屏幕截图(如果有帮助的话)。。

    在Python意义上,“Default value”似乎并不意味着“Default value”:调用中要放入的文本将根据新签名进行更改,这些文本必然在扩展签名上默认

    这也解释了额外的复选框,用于实际将该值作为新参数的“Python默认值”。然后,它在签名预览中显示为Python默认值(
    =…

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

    fn1(thing1)
    
    变成

    fn1(thing1,thing2)
    
    在调用站点,重构后的
    fn1
    定义变为

    def fn1(参数1,新参数):
    #  ...
    

    也就是说,不涉及Python默认值。

    这应该标记为正确答案。此外,如果希望此方法的调用包含特定的默认值,而不是新的参数,请使用新的参数=。例如,new_param=1。