您现在的位置是:群英 > 开发技术 > Python语言
Python中import的用法有哪些,你了解多少?
Admin发表于 2022-01-13 18:59:451088 次浏览

    这篇文章我们来了解Python中import的用法,本文总结了import的两种用法,文中的示例代码介绍得很详细,对大家学习或工作都有一定的帮助,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

    本教程操作环境:windows7系统、python3.9版,DELL G3电脑。

    使用python中import的方法:

    首先,先建立一个文件夹Tree作为工作目录,并在其内建立两个文件m1.py和m2.py,在m1.py写入代码:

import os
import m2
m2.printSelf()

    在m2.py写入代码:

def printSelf():
print('In m2')

    打开命令行,进入到Tree目录下,敲下python m1.py运行,发现没有报错,且打印出In m2,说明这样使用import没有问题。由此我们总结出import语句的第一种用法。

    import module_name即import后直接接模块名。在这种情况下,Python会在两个地方寻找这个模块,第一是sys.path(通过运行代码import sys; print(sys.path)查看),os这个模块所在的目录就在列表sys.path中,一般安装的Python库的目录都可以在sys.path中找到(前提是要将Python的安装目录添加到电脑的环境变量),所以对于安装好的库,我们直接import即可。第二个地方就是运行文件(这里是m1.py)所在的目录,因为m2.py和运行文件在同一目录下,所以上述写法没有问题。

    用上述方法导入原有的sys.path中的库没有问题。但是,最好不要用上述方法导入同目录下的文件!因为这可能会出错。演示这个错误需要用到import语句的第二种写法,所以先来学一学import的第二种写法。在Tree目录下新建一个目录Branch,在Branch中新建文件m3.py,m3.py的内容如下:

def printSelf():
print('In m3')

    如何在m1中导入m3.py呢,请看更改后的m1.py:

from Branch import m3
m3.printSelf()

    总结import语句的第二种用法:

    from package_name import module_name一般把模块组成的集合称为包(package)。与第一种写法类似,Python会在sys.path和运行文件目录这两个地方寻找包,然后导入包中名为module_name的模块。

    现在我们来说明为什么不要用import的第一种写法来导入同目录下的文件。在Branch目录下新建m4.py文件,m4.py的内容如下:

def printSelf():
print('In m4')

    然后我们在m3.py中直接导入m4,m3.py变为:

import m4
def printSelf():
print('In m3')

    这时候运行m1.py就会报错了,说没法导入m4模块。为什么呢?我们来看一下导入流程:m1使用from Branch import m3导入m3,然后在m3.py中用import m4导入m4。看出问题了吗?m4.py和m1.py不在同一目录,怎么能直接使用import m4导入m4呢。(读者可以试试直接在Tree目录下新建另一个m4.py文件,你会发现再运行m1.py就不会出错了,只不过导入的是第二个m4.py了)

    面对上面的错误,使用python2运行m1.py就不会报错,因为在python2中,上面提到的import的两种写法都属于相对导入,而在python3中,却属于绝对导入。话说到了这里,就要牵扯到import中最关键的部分了——相对导入和绝对导入。

    我们还是谈论python3的import用法。上面提到的两种写法属于绝对导入,即用于导入sys.path中的包和运行文件所在目录下的包。对于sys.path中的包,这种写法毫无问题;导入自己写的文件,如果是非运行入口文件(上面的m1.py是运行入口文件,可以使用绝对导入),则需要相对导入。

    比如对于非运行入口文件m3.py,其导入m4.py需要使用相对导入:

from . import m4
def printSelf():
print('In m3')

    这时候再运行m1.py就ok了。

    关于Python中import的用法就介绍到这,上述示例具有一定的借鉴价值,对大家学习import的使用有帮助,感兴趣的朋友可以参考。想要了解更多Python中import的内容,大家可以关注其它的相关文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-09-20 17:56:32 
摘要:上传到腾讯云上面的视频,如何实现防盗链?本文就为大家提供了php实现腾讯云视频加密的示例代码,感兴趣的小伙伴快跟随小编一起学习一下
2022-07-11 17:49:22 
摘要:实现步骤:1、利用array_filter()函数过滤数组,将数组中的空元素删除,语法“array_filter(原数组)”,会返回一个过滤后的数组;2、利用count()函数获取原数组的长度和过滤后数组的长度;3、检查获取的两个数组长度是否相等,语法“原数组长度===过滤数组长度”,如果相等则数组元素均不为空,反之则有数组元素为空。
2022-08-19 17:50:23 
摘要:下面小编就为大家带来一篇Python的str 以及常用的命令。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部