我知道之前已经提出过这个问题,但我不能对答案的含义做出正面或反面。
我正在从MATLAB过渡到Python。在MATLAB中,我可以编写自己的函数并在我的代码中使用它们。我知道我可以用Python做同样的事情。但我很难搞清楚如何去做。
我想做的是创建一个包含多个函数定义的文件,然后像任何其他模块一样将其导入Python。
首先,这是正确的思考方式吗?或者我只需要为每个函数创建多个定义文件?
其次,如果是正确的思考方式,我该如何访问该文件?我知道你必须设置PYTHONPATH。我看过它,它看起来对我来说毫无意义。
作为示例:我创建了一个名为User的文件夹。在其中我有一个名为ted.py的python函数。我将所述文件放在其余库文件所在的位置(如numpy或scipy)。我想导入名为User的文件。我怎么能这样做?
使用Python一段时间后我就明白了。只要文件位于同一目录中并且您正确使用导入,就可以使用文件中的一个,部分或全部函数定义。
答案 0 :(得分:0)
你有一个类似于matlab的(matlab不像?dis-matlab式?)选项,可以将多个函数定义放入同一个.py
文件中。一旦文件 - 比如fundefs.py
- 在你的路径上,可能是通过发布import sys; sys.path.append('path/to/fundefs');
,你可以导入它
import fundefs
,之后您可以fundefs.fun1
,fundefs.fun2
等访问其中的功能。from fundefs import *
,它会将所有函数抛出到当前的命名空间中。对于较大的模块,这通常是不鼓励的(并且不赞成),因为它会污染您的命名空间,但是对于您自己的一些功能,这可能就是您所追求的。另见this very informative answer(以及其中的评论)。import very_long_and_descriptive_module_name as shorthand
的中间位置,以shorthand.fun1
,shorthand.fun2
等方式访问您的职能(如果您的定义位于文件very_long_and_descriptive_module_name.py
中,则显然属于这种情况)< / LI>
答案 1 :(得分:0)
您不导入用户。你想要的是import ted
。通常,您可以将ted.py放在与主python文件相同的文件夹中,而不是放在单独的文件夹中。