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

Python嵌套内部类实例如何访问外层父类的实例属性

解决方案

Python的嵌套类不存在默认的外层类实例引用,需要手动把Parent实例传给Child实例才能访问对应的属性,修改方案如下:

修改后的完整代码

class Parent:
    def __init__(self) :
        self.name = "toto"
        # 初始化Child时传入当前Parent实例self
        self.enfant = self.Child(self)

    class Child:
        def __init__(self, parent) :
            self.child_name="tata"
            # 存储外层Parent实例为属性
            self.parent = parent

        def affiche(self):
            # 访问存储的外层实例的name属性
            print(self.parent.name)

测试调用

p = Parent()
p.enfant.affiche()
# 输出:toto

原理说明

  • Python的嵌套类仅为定义层级的嵌套,不会像Java非静态内部类一样自动持有外层类的实例引用
  • 手动传入外层实例是最通用的实现方式,无额外语法依赖,可读性和兼容性最好

内容的提问来源于stack exchange,提问作者Rémi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:36:03