找回密码
 会员注册
查看: 26|回复: 0

关于Python的import,你了解多少?

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
68600
发表于 2024-9-10 22:15:49 | 显示全部楼层 |阅读模式
一、前言写过Python的猿猿肯定对import不陌生。但Python在importmodule时会执行相关的代码,你知道吗?Pythonimport还有其他的什么特性呢?通过这一篇文章,彻底掌握Pythonimport二、Pythonimport详解2.1Pythonimport介绍在Python中,import是用于导入模块和模块中定义的变量、函数、类等内容的关键字。import的作用是扩展Python的功能,并允许在代码中使用其他模块提供的功能。2.2Pythonimport例子下面是import的主要作用和使用场景,并给出相应的例子:导入模块:使用import可以导入一个完整的模块,以便在代码中使用该模块中定义的功能。例如:python复制代码importmathprint(math.pi)#使用math模块中的常数pi12345导入模块中的特定内容:使用frommoduleimportname语法可以导入模块中的特定函数、变量或类,以便直接在代码中使用,而不需要使用模块名称作为前缀。例如:python复制代码frommathimportsqrtprint(sqrt(16))#直接使用sqrt函数,无需使用math.sqrt12345给导入的模块或内容起别名:使用importmoduleasalias或frommoduleimportnameasalias语法可以为导入的模块或内容指定一个别名,以便在代码中使用更短的名称。例如:python复制代码importnumpyasnpprint(np.array([1,2,3]))#使用别名np代替numpy12345导入模块中的所有内容:使用frommoduleimport*语法可以导入模块中的所有内容,使其在代码中直接可用。但这种做法通常不被推荐,因为它会导致命名冲突和可读性问题。例如:python复制代码frommathimport*print(sin(pi/2))#直接使用导入的sin和pi,但不推荐这种写法12345这些是import的主要作用和使用场景。通过导入其他模块,可以扩展Python的功能,并重用已有的代码。使用合适的导入方式和别名,可以使代码更加简洁和可读。2.3Pythonimport进一步解释2.3.1Pythonimportmodule在Python中,当一个模块被导入时,模块中的代码会被执行。然而,模块中的代码只会在第一次导入时执行一次。之后,如果再次导入同一个模块,Python解释器会直接使用已经加载的模块,而不会再次执行模块中的代码。这种行为是为了确保**模块中的代码只会被执行一次****,以避免重复执行相同的操作。通过导入模块,我们可以在需要时使用其中定义的函数、类和变量,而不必重新执行模块中的代码。值得注意的是,如果在模块中存在全局级别的可执行语句(例如函数定义以外的代码),则在导入时会执行这些语句。因此,模块的导入可能会触发一些副作用操作,例如打印输出或初始化全局变量。比如:创建test1.pypython复制代码print("我是test1,我被执行了")defsay_hello():print("helloworldtest1")123456再创建test2.pypython复制代码defsay_hello():fromtestimporttest1test1.say_hello()if__name__=='__main__':foriinrange(10):say_hello()12345678910执行test2.py输出text复制代码我是test1,我被执行了helloworldtest1helloworldtest1helloworldtest1helloworldtest1helloworldtest1helloworldtest1helloworldtest1helloworldtest1helloworldtest1helloworldtest1123456789101112132.3.2Pythonimportpackage在Python中,当导入一个包(package)时,包本身不会被执行。只有在使用该包中的模块或对象时,才会执行相应的代码。当导入一个包时,Python解释器会查找并执行该包下的__init__.py文件。__init__.py文件可以包含一些初始化代码,用于设置包的环境、导入子模块或执行其他需要在导入时执行的操作。但这些代码只会在首次导入包时执行一次。例如,假设我们有一个名为my_package的包,它的结构如下:markdown复制代码my_package/__init__.pymodule1.pymodule2.py123456在__init__.py文件中,我们可以放置一些初始化代码:python复制代码print("Executinginitializationcodeinmy_package")#导入子模块from.importmodule1from.importmodule21234567然后,我们可以在另一个脚本中导入my_package包:python复制代码importmy_packageprint("Importcompleted")12345运行上述脚本,输出如下:css复制代码Executinginitializationcodeinmy_packageImportcompleted1234从输出结果可以看出,在导入my_package包时,__init__.py中的初始化代码被执行了一次。然后,Importcompleted被打印出来,表示导入完成。但注意,这里的执行是指__init__.py中的代码被执行,并不是包中的所有模块都被导入和执行。只有在使用my_package中的具体模块或对象时,才会执行相应的代码。总结起来,当导入一个Python包时,包本身的代码不会被执行,只有在使用包内的模块或对象时才会执行相应的代码。__init__.py文件中的初始化代码会在首次导入包时执行一次,可用于设置包的环境和导入子模块。三、总结介绍了Python中import关键字的使用方法和工作原理。通过import,可以导入模块和模块中定义的内容,扩展Python的功能。文章提供了导入模块、导入模块中的特定内容、给导入的模块或内容起别名以及导入模块中的所有内容的例子,展示了import的多种用法。此外,文章解释了模块的代码只会在第一次导入时执行一次的特性,以及导入包时执行__init__.py文件的初始化代码。最后,总结了导入包时只有在使用包内的模块或对象时才执行相应代码,而__init__.py文件中的初始化代码只会在首次导入包时执行一次。这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈​1️⃣零基础入门①学习路线对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。②路线对应学习视频还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~③练习题每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!因篇幅有限,仅展示部分资料2️⃣国内外Python书籍、文档①文档和书籍资料3️⃣Python工具包+项目源码合集①Python工具包学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!②Python实战案例光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!③Python小游戏源码如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!4️⃣Python面试题我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。5️⃣Python兼职渠道而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。上述所有资料⚡️,朋友们如果有需要📦《全套Python学习资料》的,可以扫描下方二维码免费领取🆓😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈​
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-5 09:49 , Processed in 0.486777 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表