You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为返回socket.socket与socket._RetAddress的静态方法添加类型注解?

为静态方法添加返回值类型注解的实现方案

你可以通过以下两种方式为该静态方法添加返回值类型注解,让智能感知正确识别返回类型:

方式一:使用原生元组类型标注(Python 3.9+)

直接利用Python 3.9及以上版本支持的原生元组类型注解,明确指定返回的两个元素类型:

import socket
import os
import chalk

class YourClassName:
    @staticmethod
    def init_socket(_addr: str, _port: int) -> tuple[socket.socket, socket._RetAddress]:
        s = socket.socket()
        s.bind((_addr, _port))
        s.listen()
        print(chalk.red("WAITING FOR CONNECTIONS..."))
        c, addr = s.accept()
        os.system("cls")
        return (c, addr)

方式二:使用typing.Tuple(兼容Python 3.8及更早版本)

如果项目需要兼容Python 3.8或更早版本,可导入typing.Tuple进行标注:

import socket
import os
import chalk
from typing import Tuple

class YourClassName:
    @staticmethod
    def init_socket(_addr: str, _port: int) -> Tuple[socket.socket, socket._RetAddress]:
        s = socket.socket()
        s.bind((_addr, _port))
        s.listen()
        print(chalk.red("WAITING FOR CONNECTIONS..."))
        c, addr = s.accept()
        os.system("cls")
        return (c, addr)

注意事项

  • 必须确保已导入socket模块,否则类型注解无法被智能感知识别。
  • socket._RetAddress是socket.accept()返回的地址对象对应的内部类型,不同平台下可能存在细微差异,但主流IDE的智能感知均可正确识别该类型。

内容的提问来源于stack exchange,提问作者Abhimanyu Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:00:23