gpt4 book ai didi

Python:从具有所需模块的 .py 文件导入函数

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:40 25 4
gpt4 key购买 nike

我正在尝试做一些相当简单的事情。我想从 .py 文件导入一个函数,但使用在我的主脚本中导入的模块。例如存储以下函数

./files/sinner.py

def sinner(x):
y = mt.sin(x)
return y

然后我想使用数学作为 mt 来运行 sinner

from sinner import sinner
import math as mt
sinner(10)

这并不奇怪会抛出一个错误

---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-3-50006877ce3e> in <module>()
2 import math as mt
3
----> 4 sinner(10)

/media/ssd/Lodging_Classifier/sinner.py in sinner(x)
1 import math as mt
----> 2
3 def sinner(x):
4 y = mt.sin(x)
5 return y

NameError: global name 'mt' is not defined

我知道如何在 R 中处理这个问题,但在 Python 中不知道。我错过了什么?

最佳答案

sinner.py 命名空间中不存在 math 模块。与 R 不同,导入的模块或包不跨越全局命名空间。您需要在 sinner.py 文件中导入 math:

import math as mt

def sinner(x):
y = mt.sin(x)
return y

或者(我真的不知道你为什么要这样做),你可以将模块作为参数传递给 sinner 函数:

def sinner(mt, x):
y = mt.sin(x)
return y

然后您可以传递实现 sin 函数的不同模块:

from .sinner import sinner
import math as mt
import numpy as np
sinner(mt, 10)
sinner(np, 10)

关于Python:从具有所需模块的 .py 文件导入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50470419/

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