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

Python如何实现直接调用嵌套属性类方法同时完成对象创建

嵌套属性动态创建与方法直接访问方案

原实现问题分析

原有代码的__getattr__方法将属性绑定为Foo类本身而非类实例,仅支持单层属性访问,多级嵌套调用会失效;同时bar方法未适配实例调用的参数规则,后续如果需要扩展实例属性访问逻辑会存在参数不匹配问题。

优化后实现

修改__getattr__逻辑返回Foo实例即可,无需提前访问嵌套属性,还可支持任意深度的嵌套调用:

class Foo:
    def bar(self):
        print("Hello World")
    
    def __getattr__(self, name):
        # 访问不存在的属性时自动生成Foo实例并绑定到当前对象
        nested_instance = Foo()
        setattr(self, name, nested_instance)
        return nested_instance

使用验证

直接执行调用即可正常输出:

a = Foo()
# 直接调用无需提前访问a.b
a.b.bar() # 输出 Hello World
# 支持任意深度的嵌套调用
a.x.y.z.f.bar() # 同样输出 Hello World

内容的提问来源于stack exchange,提问作者Kaiz Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:04