Tôi có một chút mã bằng cách sử dụng một thiết lập socket tcp đơn giản để kiểm tra một cái gì đó. Chúng tôi chạy pylint --errors-only
trên các tệp python của chúng tôi, thường là cách để xác thực tất cả mã của chúng tôi.Làm thế nào để ngăn chặn python pylint phàn nàn về phương pháp sendall lớp socket
Tuy nhiên, mã ví dụ đơn giản đưa ra trên python tài liệu thư viện socket - http://docs.python.org/library/socket.html - ý chí đầu ra:
************* Module SocketExample
E: 16: Instance of '_socketobject' has no 'recv' member
E: 18: Instance of '_socketobject' has no 'sendall' member
Các tài liệu cho thấy các thành viên, mã chạy và các công trình.
Một dir của ổ cắm cho thấy họ đang tồn tại quá:
>>> 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']
Đây là xuống đến đoạn:
for method in _delegate_methods:
setattr(self, method, getattr(_sock, method))
Trong việc thực hiện socket.py.
Có thể đặt pylint để chấp nhận kiểu này (và xác thực nó) hay là lựa chọn duy nhất để bỏ qua cảnh báo "không có thành viên" với # pylint: disable-msg=E1101
?
Thêm rằng vào tập tin rc làm cho rất nhiều ý nghĩa. Nó có nghĩa là đối tượng không được kiểm tra gì cả, nhưng đẹp hơn các khuyết tật cục bộ. –
Gọi câu trả lời này - bởi vì nó sẽ hoạt động ngay hôm nay. Câu trả lời của sthenault là tốt - nhưng sẽ đòi hỏi nhiều nỗ lực hơn. Đó là một nỗ lực cao quý mặc dù - làm cho nó thành github và pylint sử dụng cộng đồng có thể bắt đầu đóng góp cốt lõi và các phần lib phổ biến. –
Có câu trả lời của tôi cảm thấy hacky so với, và chắc chắn quá rộng cho những gì chúng ta thực sự cần, nhưng hy vọng không quá rộng để gây ra vấn đề. – bossylobster