pycharm 用于在类定义之外定义方法的代码完成?

aydmsdu9  于 2022-11-23  发布在  PyCharm
关注(0)|答案(1)|浏览(134)

我想在类之外使用多个方法。如何在类定义之外定义方法已经回答了here
这看起来像是一个小的事后想法,但是自动补全和参数的括号也因此消失了,因为它现在被看作是一个字段。因为我想创建大量经常使用的方法,所以让它再次显示自动补全和参数会很好。Here是它所显示的内容的一个例子,我想让它自动完成括号和相应的参数,就像你在__dir__(self)函数中看到的那样。下面是代码:

from dataclasses import dataclass

def get_dap(self):
    pass

@dataclass
class Country:
    ctr_cc: str
    ctr_code: str
    ctr_name: str
    dap = get_dap

@dataclass
class Region(Country):
    reg_code: str
    reg_name: str
    dap = get_dap

dk1 = Region(ctr_cc="DK", ctr_code="DENMARK", ctr_name="Denmark", reg_code="DK1", reg_name="East Denmark")
dk1.get_dap()

我已经尝试使用一些类型提示,但我还没有找到一个解决方案。

0vvn1miw

0vvn1miw1#

感谢@Anentropic,我能够回答自己的问题(screenshot with autocompletion):

from dataclasses import dataclass

class GetMixin:
    def get_dap(self):
        pass

@dataclass
class Country:
    ctr_cc: str
    ctr_code: str
    ctr_name: str

@dataclass
class Region(GetMixin, Country):
    reg_code: str
    reg_name: str

if __name__ == '__main__':
    dk1 = Region(ctr_cc="DK",
                 ctr_code="DENMARK",
                 ctr_name="Denmark",
                 reg_code="DK1",
                 reg_name="East Denmark")
    dk1.get_dap()

使用mixin并在首选类中继承它,可以提供更好的重用方法,并允许自动完成。

相关问题