Pydev 类成员的数据类型提示

6 投票
1 回答
958 浏览
提问于 2025-04-17 22:45

根据pydev的手册,我们可以通过注释来给变量提供类型提示。http://pydev.org/manual_adv_type_hints.html

我想告诉pydev关于类成员的类型(这样代码补全和智能提示才能正常工作)。

这是我尝试过的:

class a:
    def __init__(self):
        self.a=None
        self.b=None

    def setVariable(self,a,b)
        self.a=a
        self.b=b

    def doSomething(self):
        ': :type self.a: packageX.moduleY.ClassZ'
        # use self.a from here on

但是似乎没有效果。有没有人能帮我解答一下?

1 个回答

2

看起来Pydev(3.4.1版本)不支持对类属性进行文档字符串类型提示,也不支持将类型提示的变量传播到类属性中。

这里有一个我希望能正常工作的例子:
(根据这个类,我希望在示例代码的最后两行能看到补全建议,原因在这些行的评论中提到过。)

class SampleClass(object):
    """Summary of class here.

    Attributes:
        member: Member
        @type member: MemberClass
        other_member: Another member
    """

    def __init__(self, other=None):
        """Inits SampleClass with blah.

        Args:
            @param other: Instance of OtherMemberClass
            @type other: OtherMemberClass
        """
        self.other_member = other
        self.member = None

    def public_method(self):
        """Performs operation blah."""
        self.member.#should get completions from MemberClass here because hinted in class docstring
        self.other_member.#should get completions from OtherMemberClass here because `other` was assigned to attribute in __init__, and `other` type was hinted in __init__ docstring.

我在Pydev的跟踪系统上提交了一个问题,关于这个情况。

撰写回答