Python 导入的函数不工作

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:

我是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

似乎您正在尝试从标准库而不是您自己的文件导入
信号。尝试按如下方式导入:

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的变化。