如何防止python pylint抱怨socket类的sendall方法

Dan*_*ple 9 python pylint

我有一些代码使用简单的tcp套接字设置来测试一些东西.我们运行pylint --errors-only我们的python文件,通常作为验证所有代码的方法.

但是,python套接字库文档(http://docs.python.org/library/socket.html)上给出的简单示例代码将输出:

************* Module SocketExample
E: 16: Instance of '_socketobject' has no 'recv' member
E: 18: Instance of '_socketobject' has no 'sendall' member
Run Code Online (Sandbox Code Playgroud)

文档显示了这些成员,代码运行和工作.

socket的目录也显示它们存在:

>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> dir(s)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_sock', 'accept', 'bind', 'close', 'connect', 'connect_ex', 'dup', 'family', 'fileno', 'getpeername', 'getsockname', 'getsockopt', 'gettimeout', 'listen', 'makefile', 'proto', 'recv', 'recv_into', 'recvfrom', 'recvfrom_into', 'send', 'sendall', 'sendto', 'setblocking', 'setsockopt', 'settimeout', 'shutdown', 'type']
Run Code Online (Sandbox Code Playgroud)

这取决于片段:

   for method in _delegate_methods:
        setattr(self, method, getattr(_sock, method))
Run Code Online (Sandbox Code Playgroud)

在socket.py实现中.

可以使pylint接受这种风格(并验证它),还是忽略"无成员"警告的唯一选择# pylint: disable-msg=E1101

bos*_*ter 8

您可以使用pylint --errors-only --ignored-classes=_socketobject或添加

[TYPECHECK]
ignored-classes=SQLObject,_socketobject
Run Code Online (Sandbox Code Playgroud)

到你的~/.pylintrc文件.

文件中,

被忽略的类:

不应检查成员属性的类名列表(对于具有动态设置属性的类很有用).

默认值:SQLObject