python引用其他文件的方法,python调用其他py文件
Python引用其他py文件中的函数方法
在Python脚本中引用其他文件函数的方法
导入文件时,Python只搜索当前脚本所在的目录,加载(入口点)入口脚本运行目录和sys.path中包含的路径如包的安装地址。因此,如果要引用当前脚本中的其他文件,除了将文件放在与脚本相同的目录中之外,还有几种方法。
1.将文件的位置添加到sys.path中
导入系统
sys.path.insert(0,/path/to/application/app/folder )#或sys . path . append(/path/to/application/app/folder )
导入文件
2.创建新的__init__。py文件并调用该文件。
从应用程序.应用程序.文件夹.文件导入func_name
Init.py文件
a)的作用。_ _ init _ _。py文件
这个文件的主要功能是初始化Python包。如果文件包含在下面的目录中,Python解释器会把这个目录当作一个包,下一步就是使用import语句来引用其他目录中的文件。py脚本标准Python模块的结构如下:
包装/
__init__。巴拉圭
file.py
文件2.py
子包/
__init__。巴拉圭
子模块1.py
子模块2.py
b)。__init__文件可以为空,但可用于建立对包的要求。一般来说,那些类,函数等。写在这个文件中的需要被导入到包级中,这样它们就可以很容易地被引用。例如,如果File.py文件中有一个File类,则在init.py文件中没有写入任何内容时,需要引用File类:
从package.file导入文件
如果文件被导入到包中的__init__。py文件,可以在包级别直接引用文件类:
#在您的__init__中。巴拉圭
从文件导入文件
#在你的剧本里
从包导入文件
另外,需要注意的一点是__init__中的all变量。py文件。如果解释器观察到__init__中的__all__变量。py文件,当从package import *运行时,将只引入__all__变量中列出的那些模块。例如,如果你想在上面的结构中只引入submodule1模块,你可以在子包/__init__中定义__all__=[submodule1]。py文件,而在引用子包时,只有submodule1模块会从子包导入*中引入。
3.将文件所在的目录添加到python的环境变量中。
导出python path=$ HOME/pathtoyurscripts/:$ python path
不同的交叉引用方法的详细说明。python的同一个文件夹中的py文件
例如,有两个模块,aa.py和bb.py代码如下:
aa.py:
#编码:utf-8
导入bb
a=1
bb.py:
#编码:utf-8
导入aa
打印aa.a
bb.py执行时无法执行,打印错误为AttributeError: module 对象没有属性 a
原因:
如果执行bb,那么bb是__main__,不是module,所以会从aa执行到bb。这个时候python会执行aa.py,aa.py开头来自bb,所以python会再次执行bb.py,因为bb.py开头来自aa,又因为之前已经执行过,所以这个时候aa已经在sys.module里了,所以python不会重新执行aa.py,只是把sys.modules里的aa返回给你。所以打印B到bb.py时,aa.py中的a=1还没有执行,所以会出现找不到A的属性错误。
解决方案:
aa.py:
#编码:utf-8
导入bb
a=1
bb.py:
#编码:utf-8
导入aa
if __name__==__main__ :
打印aa.a
以上详细解释了不同的交叉引用方法。python同一个文件夹里的py文件就是边肖分享的全部内容。希望能给大家一个参考,也希望大家多多支持码农之家。
以上就是我这次给大家分享的关于java的所有知识点的总结。你也可以在下面的相关文章中找到相关文章进行进一步的研究。感谢您的阅读和支持。
您可能感兴趣的文章:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。