11

簡単な 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

ドキュメントにはこれらのメンバーが示され、コードが実行されて機能します。

ソケットのディレクトリは、それらも存在することを示しています:

>>> 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']

これはスニペットにかかっています:

   for method in _delegate_methods:
        setattr(self, method, getattr(_sock, method))

socket.py 実装で。

pylint でこのスタイルを受け入れる (そして検証する) ようにすることはできます# pylint: disable-msg=E1101か?

4

2 に答える 2

10

使用pylint --errors-only --ignored-classes=_socketobjectまたは追加できます

[TYPECHECK]
ignored-classes=SQLObject,_socketobject

あなたの~/.pylintrcファイルに。

ドキュメントから、

無視されたクラス:

メンバー属性をチェックしてはならないクラス名のリスト (属性が動的に設定されるクラスに役立ちます)。

デフォルト: SQLObject

于 2012-04-24T18:03:01.040 に答える
1

http://www.logilab.org/blogentry/78354で定義されているトリックを使用して、stdlib からそのようなことを理解するのに役立つ汎用 astng プラグインを pylint に追加し始めることができます (hashlib に関するさまざまなチケット/コメントもあります)。トラッカーで)。

それは確かに大きな改善になります。ボランティアですか?:)

これ以外に、メッセージを無効にする以外のオプションはないと思います。

于 2012-04-24T15:46:11.227 に答える