gpt4 book ai didi

获取 `package.module.Class` 的 Pythonic 方式

转载 作者:太空狗 更新时间:2023-10-30 02:34:35 25 4
gpt4 key购买 nike

给定一个 'package.module.Class' 形式的字符串,Python 中是否有任何简单的方法可以直接获取类对象(假设模块尚未导入)?

如果不是,将 'package.module' 部分与 'Class' 部分分开的最干净的方法是什么,__import__() 模块,然后从中获取类?

最佳答案

import sys
def str_to_obj(astr):
'''
str_to_obj('scipy.stats.stats') returns the associated module
str_to_obj('scipy.stats.stats.chisquare') returns the associated function
'''
# print('processing %s'%astr)
try:
return globals()[astr]
except KeyError:
try:
__import__(astr)
mod=sys.modules[astr]
return mod
except ImportError:
module,_,basename=astr.rpartition('.')
if module:
mod=str_to_obj(module)
return getattr(mod,basename)
else:
raise

关于获取 `package.module.Class` 的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7437948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com