gpt4 book ai didi

Python:从名称为变量的文件导入函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:01 27 4
gpt4 key购买 nike

我有一个文件 ./model_scripts/medians.py 包含一个函数 predict_volume()。 [下面给出的 bash 终端中 tree 的输出]

 model_scripts
├── __init__.py
├── medians.py
└── ...

我需要将此函数导入另一个 python 脚本,其中必须从中导入该函数的 python 脚本的名称(即 medians.py)采用字符串变量的形式。我写的代码是:

model_name = 'medians'
...
model = getattr(__import__('model_scripts'), model_name)
vol = model.predict_volume()

但我在第一行收到以下错误:

AttributeError: 'module' object has no attribute 'medians'

在阅读其他答案 ( here ) 后,我将 __init__.py 添加到 model_scripts 目录。但我仍然收到上述错误。

This建议使用 importlib 回答:

import importlib
model_name = 'medians'
...
model = importlib.import_module('model_scripts.'+model_name)
vol = model.predict_volume()

对于为什么第一种方法不起作用而第二种方法起作用的任何见解,我们将不胜感激。

最佳答案

__import__ 的正确语法是同时使用 fromlist

以下作品(阅读here):

model = getattr(__import__('model_scripts', fromlist=[model_name]), model_name)

关于Python:从名称为变量的文件导入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656840/

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