2017-06-22 33 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):',而不是使用「代碼 - >覆蓋方法」功能生成樣板。 –