考虑以下代码:
class A:
def __init__(self, foo=None):
pass
class B(A):
def __init__(self, bar=None, **kwargs):
super().__init__(**kwargs)
当我开始输入B(
时,PyCharm会在自动完成窗口,快速文档等中帮助显示bar
。但是,它不会显示foo
。
我已使foo
成为类B
的显式自变量,但是由于我有很多这样的自变量,因此这变得非常重复。我想避免这样做,同时让PyCharm向我展示所有论点。
如何让PyCharm做到这一点?
答案 0 :(得分:0)
简短的答案是不可能的。这是由于在键入时PyCharm不会运行代码。 Python是一种具有多重继承的动态语言,IDE很难检查所有基类中的所有参数,尤其是因为与Java不同,可以省略对基类__init__()
函数的调用。>
还要注意这个片段:
class B(A):
def __init__(self, bar=None, **kwargs):
super().__init__(**kwargs)
强制foo
只能作为关键字参数而不是位置参数来传递,而A类允许它作为位置参数来传递。
但是,如果键入是一个问题,我会建议ctrl + O,这是覆盖的快捷方式。如果在空类中执行此操作,它将创建一个__init__()
方法,该方法具有基类的参数和对super的调用。如果文档有问题,只需为该方法写一个文档字符串