相关疑难解决方法(0)

没有循环导入的Python类型提示

我想把我的大班分成两部分; 好吧,基本上进入"主"类和具有附加功能的mixin,如下所示:

import mymixin.py

class Main(object, MyMixin):
    def func1(self, xxx):
        ...
Run Code Online (Sandbox Code Playgroud)

现在,虽然这很好用,但MyMixin.func2中的类型提示当然无法正常工作.我无法导入main.py,因为我得到一个循环导入而没有提示,我的编辑器(PyCharm)无法分辨出什么main.py是.

使用Python 3.4,如果有可用的解决方案,愿意转向3.5.

有没有什么办法可以将我的课分成两个文件并保留所有的"连接",以便我的IDE仍然提供自动完成功能以及知道类型的所有其他好东西?

python type-hinting pycharm python-3.4 python-3.5

65
推荐指数
6
解决办法
1万
查看次数

Mixin 方法 super() 调用在 PyCharm 中生成未解析的属性引用

在 PyCharm 中,我有一些看起来像这样的代码:

class Mixin:
    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs.update({'foo': 'bar'})
        return kwargs
Run Code Online (Sandbox Code Playgroud)

短绒Unresolved attribute reference 'get_form_kwargs' for class 'object'super()电话中提出了一个问题。这个问题 100% 正确,但对 mixin 没有帮助。我们有很多具有这种super()模式的mixin 。

我知道属性的解决方案,但不知道您可以为这些未定义的类属性声明类型的方法。例如:

class Mixin:
    foo:str
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有任何类似的方法可以帮助 linter 识别 mixin。

谢谢!

python typing pycharm

6
推荐指数
1
解决办法
202
查看次数

标签 统计

pycharm ×2

python ×2

python-3.4 ×1

python-3.5 ×1

type-hinting ×1

typing ×1