PyCharm代码不智能提示
如下代码
import socket
import threading
def handle_client_request(ip, client):
while True:
recv_data = client.recv(1024)
if recv_data:
decode_data = recv_data.decode('gbk')
print(f'接收到客户端{ip}发送的数据: {decode_data}')
send_content = '处理中...'
send_data = send_content.encode('gbk')
client.send(send_data)
else:
print(f'客户端下线了{ip_port}')
break
client.close()
if __name__ == '__main__':
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
tcp_server_socket.bind(('', 8090))
tcp_server_socket.listen(128)
while True:
client_server_socket, ip_port = tcp_server_socket.accept()
sub_thread = threading.Thread(target=handle_client_request, args=(ip_port, client_server_socket))
sub_thread.setDaemon(True)
sub_thread.start()
handle_client_request(ip, client)函数接收了两个形参,但是在函数内使用代码提示功能Basic
是无效的,因为通过包裹方式传递的参数args=(ip_port, client_server_socket)
,没解包之前判断不了参数的类型.
例如:client.
是无提示的,即使指定参数类型handle_client_request(ip: tuple, client: socket)
使用Basic
也是没有效果的
1
解决方案
-
Windows
使用SmartType
智能类型提示即可解决
2
3
-
macOS
同上
4
网友评论