当前位置: 首页 > news >正文

Python组合:通过__new__方法实现成员类访问宿主类的方法

Python组合:通过__new__方法实现成员类访问宿主类的方法

import inspectclass BaseMessage(object):def __init__(self, client=None):self.client = clientclass Message(BaseMessage):message_key = 'message_key'def _is_api_endpoint(obj):return isinstance(obj, BaseMessage)class BaseClient(object):def __new__(cls, *args, **kwargs):'''让 Client 中所有 BaseMessage 子类实例(如 Message)自动关联 Client 实例,无需手动传参'''self = super(BaseClient, cls).__new__(cls)# 反射遍历实例属性,筛选出所有 BaseMessage 子类实例# inspect.getmembers(self, 筛选函数):获取 self 的所有属性/方法,仅保留符合筛选条件的api_endpoints = inspect.getmembers(self, _is_api_endpoint)print('api_endpoints:>>>>> ', api_endpoints)  # [('message', <__main__.Message object at 0x1048c2010>)]# 遍历筛选结果,重新实例化并绑定 Client 实例for name, api in api_endpoints:# 获取消息类的类型(如 Message)api_cls = type(api)  # 等价于 api_cls = Message# 重新实例化:将 Client 自身(self)传入 Message 的 __init__api = api_cls(self)# 把重新实例化后的 Message 绑定回 Client 实例的属性
            setattr(self, name, api)return selfAPI_BASE_URL = 'https://www.baidu.com/'class Client(BaseClient):message = Message()client = Client()
print(client.message.message_key)  # message_key
print(client.message.client.API_BASE_URL)  # 'https://www.baidu.com/'

~~~

http://www.zskr.cn/news/70218.html

相关文章:

  • 深入解析:前端前沿技术
  • 2025年12月有机肥生产设备厂家最新推荐:资质与实力双优之选
  • 2025 年支付宝消费券回收平台推荐:支付宝消费券闲置、支付宝消费券快速回收、支付宝消费券用不完回收平台选择指南
  • 电子汽车衡厂家哪家好?2025电子汽车衡生产企业实力榜
  • 告别MCU+AT:OpenCPU开启嵌入式新纪元(2)
  • 2025年灰色封堵胶泥生产厂家企业权威指南:非凝固型密封硅胶防火泥/高分子有机硅胶封堵泥/有机硅防火泥源头企业精选
  • 2025年Q4堆垛机厂家TOP5排行榜:TSG特种设备许可+JB/T7016,快速交付推荐
  • YOLOv5 RKNN 部署
  • 未来已来!全球优质GEO优化公司盘点:AI 搜索时代的流量新引擎
  • 国标GB281811算法算力平台EasyGBS打造高效路况监控与管理解决方案
  • 2025 美国留学机构 TOP10 推荐:精准适配需求,冲刺藤校更有底气
  • 2025年特氟龙喷涂厂家权威推荐榜单:无机纤维喷涂/静电喷涂/不锈钢喷塑加工源头厂家精选
  • 专业的ERP系统推荐榜:聚焦企业信息化管理需求
  • 专业的ERP系统推荐榜单:2025年国内主流方案解析
  • 随着IT高效的技术和OT手艺发展的ISA-95体系演进过程
  • 皮革外观缺陷检测设备:技术方案与应用领域探讨
  • 钙钛矿外观缺陷检测设备:技术创新与应用解析
  • 行业内符合欧标EI120防火卷帘门厂家排名一览
  • Python零基础从入门到精通详细教程5-数据类型的转换- 中篇 - 北京
  • EPC酒店装修公司推荐:国内优质服务商盘点
  • KFCoder - 敏捷冲刺日志 - 7th
  • 国产值得投资的AI龙头公司有哪些?行业发展与企业解析
  • 资源刚性交付的核心矛盾是什么?解析 SAE 破解供需、隔离、弹性难题的逻辑
  • 2025年上海无人值守停车系统公司权威推荐榜单:无人值守停车云坐席中心平台‌/无人值守云托管停车管理系统‌/无人值守机器人‌源头公司精选
  • 肌肤发黄缺水用什么身体乳?2025身体乳品牌,专家测评+用户反馈双重认证
  • 2025 年,谁才是领先的生成式 AI 平台?一文看清行业格局
  • 海外云服务器中哪家平台的稳定性和安全性最佳?|AWS Reliability Security Framework 深度解析
  • 第二阶段 测试流程.md
  • 一文拆解成功展会活动的策划指南!会展活动/展览策划/展览展会策划/合肥会展策划公司推荐
  • 哪些云平台最受开发者欢迎,且支持主流语言和框架?|AWS Developer Experience 全面解析