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

globals() 小技巧

scheduler_class = globals()[scheduler_class_name] 

Python 中一种 动态获取类对象 的常用技巧,属于 反射(reflection) 编程的范畴

globals()Python 内置函数,返回一个 字典(dict),包含当前模块(文件)中所有全局变量、函数、类、导入的模块等的名称和对象。
[scheduler_class_name]从 globals() 返回的字典中,以字符串 scheduler_class_name 为键,查找对应的值。
scheduler_class_name一个字符串变量,比如 "DDPMScheduler" 或 "DPMSolverMultistepScheduler"

用法示例

from diffusers import DDPMScheduler, DDIMScheduler, DPMSolverMultistepScheduler# 假设这是从配置文件读取的类名
scheduler_class_name = "DPMSolverMultistepScheduler"# 动态获取类
scheduler_class = globals()[scheduler_class_name]# 现在 scheduler_class 就是 DPMSolverMultistepScheduler 这个类
print(scheduler_class)  # <class 'diffusers.DPMSolverMultistepScheduler'># 可以用来创建实例
scheduler = scheduler_class.from_config(config)

如果不用global():

if scheduler_class_name == "DDPMScheduler":scheduler_class = DDPMScheduler
elif scheduler_class_name == "DDIMScheduler":scheduler_class = DDIMScheduler
elif scheduler_class_name == "DPMSolverMultistepScheduler":scheduler_class = DPMSolverMultistepScheduler
else:raise ValueError(f"Unknown scheduler: {scheduler_class_name}")

这样写冗长、难维护,每新增一个调度器就要改代码

http://www.xdnf.cn/news/1412065.html

相关文章:

  • 仅有一张Fig的8分文章 胞外囊泡lncRNA+ CT 多模态融合模型,AUC 最高达 94.8%
  • 【LeetCode修行之路】算法的时间和空间复杂度分析
  • 大数据毕业设计选题推荐-基于大数据的大气和海洋动力学数据分析与可视化系统-Spark-Hadoop-Bigdata
  • ESP32C3 系列实战(1) --点亮小灯
  • Wi-Fi技术——物理层技术
  • 使用Cadence工具完成数模混合设计流程简介
  • LangChain核心抽象:Runnable接口深度解析
  • leetcode_48 旋转图像
  • FFMPEG学习任务
  • 第 14 篇:K-Means与聚类思维——当AI在没有“标准答案”的世界里寻宝
  • 【C2000】C2000的硬件设计指导与几点意见
  • 开源知识抽取框架 推荐
  • 京东获取商品评论指南,实时关注用户反馈
  • 官方 API 与网络爬虫的技术特性对比及选型分析
  • Unity学习----【数据持久化】二进制存储(三)--文件夹操作
  • OpenStack 01:介绍
  • 暄桐林曦老师关于静坐常见问题的QA
  • 基于GA遗传优化的双向LSTM融合多头注意力(BiLSTM-MATT)时间序列预测算法matlab仿真
  • windows系统中的docker,xinference直接运行在容器目录和持载在宿主机目录中的区别
  • isat将标签转化为labelme格式后,labelme打不开的解决方案
  • MyBatis 黑马 辅助配置,数据库连接池
  • 柔性数组与不定长数据
  • 【秋招笔试】2025.08.31饿了么秋招笔试题
  • SPMTE 2022概述
  • 线程池常见面试问答
  • 一次解决 Elasticsearch 两大难题: 掌握去重和深分页的最佳实践
  • Day19_【机器学习—线性回归 (1)】
  • PerfectSquares.java
  • c++程序员日常超实用工具(长期记录更新)
  • 疯狂星期四文案网第56天运营日记