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

如何在嵌套函数中避免直接引用外部类名指定内部类类型?

解决方案

你可以通过self.class.Config替代硬编码的类名,因为self是EngineCheck的实例,self.__class__会指向它所属的类本身:

import os

class EngineCheck:
    class Config:
        IP = os.environ['SERVICE_IP']
        PORT = os.environ.get('SERVICE_PORT', 10051)

    def _request_all_(self):
        def _send_response(config: self.__class__.Config):
            # do stuff
            return True

如果觉得self.__class__.Config写起来繁琐,也可以在外部方法里先把内部类存为局部变量,让内部函数直接引用:

import os

class EngineCheck:
    class Config:
        IP = os.environ['SERVICE_IP']
        PORT = os.environ.get('SERVICE_PORT', 10051)

    def _request_all_(self):
        config_cls = self.__class__.Config
        def _send_response(config: config_cls):
            # do stuff
            return True

至于你尝试的super().Config无效,是因为super()返回的是当前类父类的代理对象,而Config是EngineCheck自身的内部类,并非父类的属性,所以无法通过super()访问到。

内容的提问来源于stack exchange,提问作者Silviu Bajenaru Marcu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:57:42