Python 导入的函数不工作
我是Python新手,正在尝试导入一个在单独文件中创建的函数。当我运行代码时,我得到“TypeError:signal()缺少1个必需的位置参数:'handler'”。我认为这意味着信号函数没有被传递一个参数,但我很确定for循环就是这样做的。我哪里做错了?此外,这些文件位于同一文件夹中,该文件夹是工作目录的一部分。调用该函数的代码是:Python 导入的函数不工作,python,function,Python,Function,我是Python新手,正在尝试导入一个在单独文件中创建的函数。当我运行代码时,我得到“TypeError:signal()缺少1个必需的位置参数:'handler'”。我认为这意味着信号函数没有被传递一个参数,但我很确定for循环就是这样做的。我哪里做错了?此外,这些文件位于同一文件夹中,该文件夹是工作目录的一部分。调用该函数的代码是: import numpy as np t=np.linspace(-5,5,200) import signal y=[] for i in t:
import numpy as np
t=np.linspace(-5,5,200)
import signal
y=[]
for i in t:
y.append(signal.signal(i))
功能代码保存在名为signal.py的文件中。代码是:
def signal(t):
import numpy as np
y=np.cos(t)*np.exp(-abs(t))
return y
似乎您正在尝试从标准库而不是您自己的文件导入
信号。尝试按如下方式导入:
from .signal import signal
PS:由于您是Python新手,还应该确保目录中有一个\uuuu init\uuuu.py
文件,如下所示:
/Parent
__init__.py
main.py
signal.py
似乎您正在尝试从标准库而不是您自己的文件导入信号。尝试按如下方式导入:
from .signal import signal
PS:由于您是Python新手,还应该确保目录中有一个\uuuu init\uuuu.py
文件,如下所示:
/Parent
__init__.py
main.py
signal.py
正如chepner所建议的,您的模块名与Python内置的模块signal
如果名称不重要,则可以更改名称
如果名称很重要,那么您可以创建一个包并将文件放入其中,然后导入它
例如,下面是您的目录树
signal_module/
├── __init__.py
└── signal.py
original_file.py
然后导入信号\u模块
,如下所示
from signal_module import signal
\uuuu init\uuuu.py
文件已导入
它可以是空的,但需要为python创建它,以便将目录树作为包
正如您所说的,您是python新手,请看一看以了解更多关于\uu init\uuuu.py
重要性的信息,正如chepner所建议的,您的模块名称与python内置的模块signal
如果名称不重要,则可以更改名称
如果名称很重要,那么您可以创建一个包并将文件放入其中,然后导入它
例如,下面是您的目录树
signal_module/
├── __init__.py
└── signal.py
original_file.py
然后导入信号\u模块
,如下所示
from signal_module import signal
\uuuu init\uuuu.py
文件已导入
它可以是空的,但需要为python创建它,以便将目录树作为包
正如您所说,您是python新手,请看一看以了解更多关于\uuu init\uuuu.py
“它不工作”不是问题的具体描述。没错,我已将问题更新为更具体的问题。signal
是标准库中的一个模块;您正在导入的是该问题,而不是您的signal.py
。您正在导入的是:“它不工作”不是问题的具体描述。没错,我已将问题更新为更具体的问题。signal
是标准库中的一个模块;您导入的是它,而不是您的信号.py
。您导入的是:我的荣幸。毫无疑问是愚蠢的,它仍然可以帮助某些人。@TomWeisner这是一个非常现实的问题,它导致了Python中的更改。我的荣幸。毫无疑问是愚蠢的,它仍然可以帮助某些人。@TomWeisner这是一个非常现实的问题,它导致了中记录的Python的变化。