如何阻止Pycharm使用docstrings提出有关继承类的类型提示警告?

时间:2016-06-02 22:45:08

标签: python python-2.7 struct pycharm docstring

我正在使用Python 2.7并编写文档字符串,使用Sphinx表示法指定字段和参数的类型。在我的项目的以下代码中,Pycharm引发了两个类型提示错误(下面的说明):

from struct import Struct
import urllib


class OStruct(Struct):
    """ Abstract data structure for containing data to be transmitted over the network. """
    __metaclass__ = ABCMeta

    def __init__(self):
        Struct.__init__(self, self.format)


class ConnectionIDStruct(OStruct):
    """ Sent from server to client via TCP on connect
        Sent from client to server via UDP to map UDP port to TCP connection object
        Direction: 2 way
    """
    type = 0x00
    format = '<B2Q'

    def __init__(self, upper, lower):
        """
        :type upper: int
        :type lower: int
        """
        OStruct.__init__(self)
        self.upper = upper
        self.lower = lower

    def pack(self):
        """ Pack the data.
        :rtype: str
        """
        return OStruct.pack(self, self.type, self.upper, self.lower)

OStruct是一个抽象类,它继承了标准库类struct.Struct。 ConnectionIDStruct是将子类化OStruct的许多类之一。在上面的代码中,产生了两个与类型提示有关的警告,并且都预期&#39; Struct&#39;作为班级:

  

预期类型&#39;结构&#39;,得到&#39; OStruct&#39;代替

on&#39; self&#39;在这一行:

Struct.__init__(self, self.format)

  

预期类型&#39;结构&#39;,得到&#39; ConnectionIDStruct&#39;代替

on&#39; self&#39;在这一行:

return OStruct.pack(self, self.type, self.upper, self.lower)

使用Sphinx表示法的文档字符串似乎适用于所有其他情况。

如何防止Pycharm引发这些警告,以便每当我将具体的OStruct子类传递给Struct方法时都不会发出警告?

0 个答案:

没有答案