2017-06-22 31 views
0

我不确定是否有技术术语来描述当您开始输入方法时IDE自动显示方法(或函数)参数,以帮助您知道什么参数,你可能需要让我们填写。python子类在IDE中自动填充父方法签名

我想,当我创建一个Python子类来维护这种类型的行为,但现在当我在Pycharm IDE类型,参数显示为self: Bar, *args, **kwargs,而不是self: Bar, param_1, param2

我原来的课程是:

class Foo: 
    def __init__(self, param_1, param2): 
     self.param_1 = param_1 
     self.param_2 = param_2 


class Bar(foo): 
    def __init__(self, *args, **kwargs): 
     super(Foo, self).__init__(*args, **kwargs) 

这是特定于Pycharm的东西,还是有某种functools魔术可以用来保留父级的方法签名,还是必须显式编写子类中的所有父参数?

回答

1

这是一个IDE功能,而不是functools模块。你要做的是不是一个真正的子类,做了这种方式:

class Bar(Foo): 
    pass 

在这种情况下,你上键入Bar(得到self: Bar, param_1, param2

+0

但是,如果我想扩展类,除非明确指定所有参数,否则我将无法在父级上看到签名? –

+0

你能提供一些例子吗?我不明白你想达到什么目的。 –

+0

如果您想快速覆盖'__init__'方法,请输入'class Bar(Foo):',而不是使用“代码 - >覆盖方法”功能生成样板。 –