导入的功能不起作用

时间:2017-10-18 13:37:41

标签: 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:
    y.append(signal.signal(i))

功能代码保存在名为signal.py的文件中。代码是:

def signal(t):
    import numpy as np
    y=np.cos(t)*np.exp(-abs(t))
    return y

2 个答案:

答案 0 :(得分:0)

您似乎正在尝试从标准库而不是您自己的文件中导入signal。尝试像这样导入它:

from .signal import signal

PS:由于您不熟悉Python,因此您还应该确保目录中有一个__init__.py文件,如下所示:

/Parent
    __init__.py
    main.py
    signal.py

答案 1 :(得分:0)

正如chepner所建议的那样,模块名称与内置模块中的pythons冲突signal

如果名称不重要,则可以更改名称。

如果名称很重要,那么您可以创建一个包并将文件放入其中,然后导入它。

例如,以下将是您的目录树

signal_module/
├── __init__.py
└── signal.py
original_file.py

然后按如下方式导入signal_module

from signal_module import signal

__init__.py文件已导入。

它可以为空,但需要为python创建以将目录作为包树。

如你所说,你是python的新手,请查看this answer以了解__init__.py的重要性