当前位置: 首页 > 科技观察

如何用最简单通俗的方式理解Python模块?

时间:2023-03-20 19:38:57 科技观察

简单来说,Python模块就是一个.py后缀的可执行文件,用来重复调用变量和函数。比如在数据分析的时候需要反复读取CSV文件,除了使用pandas等现成的库方法外,还可以自己写一个模块进行调用。#-*-编码:utf-8-*-importcsvdesc='Thisisthecsvreadingfunction'print(desc)defread_csv(path):withopen(path,newline='')ascsvfile:reader=csv.DictReader(csvfile)foriinreader:print(i)你只需要将上面的脚本保存为.py文件,然后你就可以在里面导入read_csv函数,直接在你的代码中调用。比如我把脚本保存为readcsv.py,存放在当前文件夹下,在新的代码中调用,只需要传入csv文件的路径名就可以读取对应的文件了。fromreadcsvimportread_csvread_csv("e:\\test.csv")得到如下结果:这是一个写得很好的模块,你可以随时随地调用它而无需在代码中重复复杂的方法。我们可以看到,运行代码后,直接使用了模块的常量,调用了模块的函数,其中涉及到模块的函数定义:?Python模块(Module),是一个Python文件,以.py,包括Python对象定义和Python语句。?模块相当于一个封装好的工具箱,只需要传入相关参数即可使用其中的功能。一般大型的Python代码项目都会有很多模块,这样可以让逻辑更加清晰。.py模块文件除了通过import导入外,还可以直接作为脚本运行。我们在命令行切换到脚本所在目录,输入:pythonreadcsv.py直接执行对应代码:如果在脚本代码中加入if__name__=="__main__":语句,则语句后面的代码只在直接执行脚本时生效,导入模块时不执行。#-*-编码:utf-8-*-importcsvdesc='Thisisthecsvreadingfunction'print(desc)defread_csv(path):withopen(path,newline='')ascsvfile:reader=csv.DictReader(csvfile)foriinreader:print(i)if__name__=="__main__":print("直接运行脚本时生效")这也是很多人困惑的问题,if__name__=="__main__”:有什么用?__main__总是引用当前正在执行的模块的名称(包括后缀.py)。__name__是一个内置变量,直接执行模块时,__name__等于文件名(包括后缀.py)。如果模块被引入到其他模块中,则模块的__name__等于模块名称(不带后缀.py)。所以直接执行脚本时,__name__=="__main__"为真,可以继续执行后面的代码。import导入模块时,__name__=="__main__"为false,不成立,无法执行下面的代码。此操作通常用于为模块提供方便的用户界面,或用于测试(将模块作为脚本运行以执行测试套件)。以下是常用的python内置模块,供参考。